1 (09.09.2012 00:00:00 отредактировано inux)

Все, что ниже относится к быстрому и удобному восстановлению бэкапов из консоли:


По этому пути /var/mobile/Media/general_storage/icon/
лежат архивы, в таком формате:

скрин:

+ открыть спойлер

http://s002.youpic.su/pictures/1346788800/0e2942447661242c3f32ce5e005105c2.png

в них бэкапы данных, которые можно восстановить...
для этого нужно содержимое архива скопировать в корень и извлечь.
так вот, хотелось бы это делать удобно - с помощью одной команды:
"back" - выполнив которую, появляется примерно такое в консоле:

http://s002.youpic.su/pictures/1346788800/f973988d75c738d7fbf8473b2cc78bb2.png

выполнив команду "back" - проверяется директория, создается список файлов, и затем показывается диалог, в котором вводим к примеру цифру 2 (см.2 скрин)
и файл icon_05-09-2012_01:33.zip копируется в корень и распаковывается! все!

Уважаемые форумчане, просьба помочь.
Возможно вы сможите подсказать более удобное восстановление.
Спасибо.

P.S В итоге, помог XELFAER!
Огромное спасибо!

Спасибо всем, кто пытался хоть как то помочь!

2 (06.09.2012 14:28:52 отредактировано inux)

как я понимаю, создаем файл "back" и он выполняет следующее:
1. Получает список файлов
2. И генерирует из этого списка примерно такое и запускает:
-------------------------------------------


Код:

+ открыть спойлер

#!/bin/bash

STORAGE="/var/mobile/Media/general_storage/"

    # Выводим на экран

    echo "Выбрать цифрой архив для восстановления"

    echo "1. icon_04-09-2012_01:33.zip"
    echo "2. icon_05-09-2012_01:33.zip"
    echo "3. icon_06-09-2012_01:33.zip"
    echo "4. icon_07-09-2012_01:33.zip"
    echo "5. icon_08-09-2012_01:33.zip"

echo ''
    echo -n "Введите цифру [1,2,3 ...]? "
   read choice

if [ $choice -eq 1 ]; then
cp $STORAGE/icon/icon_04-09-2012_01:33.zip /x.zip
unzip -o -X -K /x.zip &> /dev/null
else
               
if [ $choice -eq 2 ]; then
cp $STORAGE/icon/icon_05-09-2012_01:33.zip /x.zip
unzip -o -X -K /x.zip &> /dev/null
else
             
if [ $choice -eq 3 ]; then
cp $STORAGE/icon/icon_06-09-2012_01:33.zip /x.zip
unzip -o -X -K /x.zip &> /dev/null
else

if [ $choice -eq 4 ]; then
cp $STORAGE/icon/icon_07-09-2012_01:33.zip /x.zip
unzip -o -X -K /x.zip &> /dev/null
else

if [ $choice -eq 5 ]; then
cp $STORAGE/icon/icon_08-09-2012_01:33.zip /x.zip
unzip -o -X -K /x.zip &> /dev/null
else

                    fi
            fi
    fi
                    fi   
            fi


exit

3

Это не реально сделать?

4

Кучу if ... fi нужно заменить одним

case choise in
...
esac

Команды по восстановлению из архива оформить функцией. Да, и зачем вы перед разархивированием копируете архив?

P.S. А чем вам не нравятся готовые решения?

Был, был и весь вышел...

5 (06.09.2012 00:46:22 отредактировано inux)

inux пишет:

Команды по восстановлению из архива оформить функцией. Да, и зачем вы перед разархивированием копируете архив?

помогите пожалуйста сделать -  как правильно )

6

\\\P.S. А чем вам не нравятся готовые решения?
а такие есть? )

7 (06.09.2012 14:28:18 отредактировано inux)

реализовал все связанное с бэкапом - все ОК

скрин:

+ открыть спойлер

http://s002.youpic.su/pictures/1346875200/682454abcb9883b8ccf0a75370963804.png

а вот с восстановление... не знаю как поступить.
нужно, что бы легко и просто выбираем в меню "восстановить" \ далее выбираем "минимальный бэкап" или "основной" или "иконки! и т.д...
появляется список с архивами \ выбираем архив \ ентер = все.

сейчас же, на устройстве легко и просто восстановить бэкап не возможно ((

8

за вас мне писать лень, так что основные идеи:
1. считываешь список файлов в bash-массив...  хинт: тут могут понадобится циклы...
2. потом печатаешь первые k из них
3. выбираешь n-й
4. и соответственно его распаковываешь
5. ????????
6. PROFIT!!!

чтиво на досуг: http://www.opennet.ru/docs/RUS/bash_scripting_guide/
ЗЫ: в zip архивировать, вообще говоря, плохая идея — он не сохраняет никакие атрибуты, а также линки, трубы и другие необычные файлы...

95% процентов проблем находятся между клавиатурой и стулом.

9

если в качестве ввода использовать имя архива то вот:

+ открыть спойлер
#!/bin/bash
cd /var/mobile/Media/general_storage/icon/

#ищем в каталоге архивы и выводим
for i in *.zip;
do 
echo $((j+=1))'. '$i;
done;

#ввод имени архива
echo "Введите имя архива:";
read name;
echo "Выбран архив: "$name;

#распаковываем выбранный архив
unzip /var/mobile/Media/general_storage/icon/$name -d /
exit 0
Верить нельзя никому...

10 (06.09.2012 14:27:46 отредактировано inux)

XELFAER, спасибо за помощь!

То, что надо!
Но:

+ открыть спойлер

iPhone:~ root# zzz
1. icon_03-09-2012_22:55.zip
2. icon_03-09-2012_23:05.zip
3. icon_03-09-2012_23:17.zip
4. icon_03-09-2012_23:18.zip
5. icon_03-09-2012_23:19.zip
6. icon_04-09-2012_01:32.zip
7. icon_04-09-2012_01:33.zip
8. icon_04-09-2012_01:51.zip
9. icon_04-09-2012_01:54.zip
10. icon_04-09-2012_01:56.zip
11. icon_05-09-2012_02:26.zip
12. icon_05-09-2012_19:13.zip
13. icon_05-09-2012_19:57.zip
14. icon_06-09-2012_01:07.zip
15. icon_06-09-2012_02:13.zip
16. icon_06-09-2012_13:27.zip
Введите имя архива:
15
Выбран архив: 15
unzip:  cannot find or open /var/mobile/Media/general_storage/iLEX/icon/15, /var/mobile/Media/general_storage/iLEX/icon/15.zip or /var/mobile/Media/general_storage/iLEX/icon/15.ZIP.
iPhone:~ root#

можно подправить? )

11 (06.09.2012 14:31:08 отредактировано inux)

Fat-Zer пишет:

за вас мне писать лень, так что основные идеи:
1. считываешь список файлов в bash-массив...  хинт: тут могут понадобится циклы...
2. потом печатаешь первые k из них
3. выбираешь n-й
4. и соответственно его распаковываешь
5. ????????
6. PROFIT!!!

чтиво на досуг: http://www.opennet.ru/docs/RUS/bash_scripting_guide/
ЗЫ: в zip архивировать, вообще говоря, плохая идея — он не сохраняет никакие атрибуты, а также линки, трубы и другие необычные файлы...


вот так у меня реализован бэкап:

+ открыть спойлер

#!/bin/sh

#  ====================================
#  Title:
#  ====================================


STORAGE="/var/mobile/Media/general_storage"
PREFERENCES="/var/mobile/Library/Preferences"
mybackup="/mybackup"

/usr/bin/ilex_del

echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';
echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';
echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';

#sleep 1s

echo "Пожалуйста подождите, архивирую..."

rm -f $STORAGE/bckupok.zip  &> /dev/null
zip -r $STORAGE/bckupok.zip /etc/apt/sources.list.d/ &> /dev/null

#sleep 2s

echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';
echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';
echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';

echo ''
echo 'Сохранил репозитории, твики, приложения и зависимости Cydia (список для восстановления)'
echo 'продолжаю...'
echo ''



if [ -e $mybackup ]; then
/mybackup
else
echo ''
fi



###################

zip $STORAGE/bckupok.zip /var/mobile/Library/AddressBook/AddressBook.sqlitedb &> /dev/null  ### Контакты
zip $STORAGE/bckupok.zip /var/mobile/Library/AddressBook/AddressBookImages.sqlitedb &> /dev/null  ### Контакты
zip -r $STORAGE/bckupok.zip /var/mobile/Library/Calendar/ &> /dev/null      #### Календарь, Напоминания
zip -r $STORAGE/bckupok.zip /var/mobile/Library/SMS/ &> /dev/null      ### СМС
zip -r $STORAGE/bckupok.zip /var/mobile/Library/Safari/ &> /dev/null      #### История Safari
zip -r $STORAGE/bckupok.zip /var/mobile/Library/Cookies/ &> /dev/null      #### История Cookies
zip -r $STORAGE/bckupok.zip /var/mobile/Library/Notes/ &> /dev/null      #### Заметки
zip -r $STORAGE/bckupok.zip /var/mobile/Library/Mail/ &> /dev/null      ####  Почта
zip -r $STORAGE/bckupok.zip /var/wireless/Library/CallHistory/ &> /dev/null      #### История звонков
zip $STORAGE/bckupok.zip /var/mobile/Library/SpringBoard/IconSupportState.plist &> /dev/null  #### Расположение папок и иконок
zip $STORAGE/bckupok.zip /mybackup &> /dev/null  #### mybackup

#sleep 2s

echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';
echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';
echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';

echo 'Сохранено в архив:'
echo ''
echo 'Контакты (телефонная книга)'
echo 'СМС (история)'
echo 'Звонки (история)'
echo 'Заметки'
echo 'Календарь'
echo 'Напоминания'
echo 'Почта'
echo 'Safari (cookies, история)'
echo 'Расположение папок и иконок'

echo ''
#sleep 3s

######################




cd $STORAGE &> /dev/null
mkdir iLEX &> /dev/null
cd $STORAGE/iLEX &> /dev/null
mkdir mini &> /dev/null
chown -R mobile:mobile $STORAGE/iLEX &> /dev/null
chown -R mobile:mobile $STORAGE/iLEX/mini &> /dev/null

mv -f $STORAGE/bckupok.zip $STORAGE/iLEX/mini/mini_`date '+%d-%m-%Y_%R'`.zip &> /dev/null





zip $STORAGE/bckupok.zip /var/mobile/Library/SpringBoard/IconSupportState.plist &> /dev/null  #### Расположение папок и иконок

cd $STORAGE &> /dev/null
mkdir iLEX &> /dev/null
cd $STORAGE/iLEX &> /dev/null
mkdir icon &> /dev/null
chown -R mobile:mobile $STORAGE/iLEX &> /dev/null
chown -R mobile:mobile $STORAGE/iLEX/icon &> /dev/null

mv -f $STORAGE/bckupok.zip $STORAGE/iLEX/icon/icon_`date '+%d-%m-%Y_%R'`.zip &> /dev/null





zip -r $STORAGE/bckupok.zip $PREFERENCES/ &> /dev/null      #### Настройки (Preferences)

cd $STORAGE &> /dev/null
mkdir iLEX &> /dev/null
cd $STORAGE/iLEX &> /dev/null
mkdir preferences &> /dev/null
chown -R mobile:mobile $STORAGE/iLEX &> /dev/null
chown -R mobile:mobile $STORAGE/iLEX/preferences &> /dev/null

mv -f $STORAGE/bckupok.zip $STORAGE/iLEX/preferences/preferences_`date '+%d-%m-%Y_%R'`.zip &> /dev/null





cd $STORAGE &> /dev/null
mkdir iLEX &> /dev/null
cd $STORAGE/iLEX &> /dev/null
mkdir cydia &> /dev/null
cd $STORAGE/iLEX/cydia/ &> /dev/null
mkdir tweaks &> /dev/null
chown -R mobile:mobile $STORAGE/iLEX &> /dev/null
chown -R mobile:mobile $STORAGE/iLEX/cydia &> /dev/null
chown -R mobile:mobile $STORAGE/iLEX/tweaks &> /dev/null


dpkg --get-selections | grep -v deinstall | grep -v gsc | sed -e 's/[\t]install//' > $STORAGE/mytweaks.txt

zip $STORAGE/bckupok.zip $STORAGE/mytweaks.txt &> /dev/null      ####  tweaks
mv -f $STORAGE/bckupok.zip $STORAGE/iLEX/cydia/tweaks/tweaks_`date '+%d-%m-%Y_%R'`.zip &> /dev/null
rm -rf $STORAGE/mytweaks.txt




echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';
echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';
echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';



echo 'Бэкап успешно создан!'
echo 'Архив "mini-xxxx.zip" находится в "Общем хранилище" папка "mini"'
echo 'Не забывайте копировать папку "iLEX" в надежное место!'
echo ''


exit

создал скрипт интуитивно, без знаний написания скриптов...)
результатом работы удовлетворен! ab

...гляньте пожалуйста, если не сложно - посоветуйте, что бы Вы заменили..
спасибо

12

inux пишет:

можно подправить? )

в начале сообщения я указал: что необходимо вводить имя архива:  icon_03-09-2012_22:55.zip, или сделать имена архивов цифровыми в последовательном порядке что бы нумерация совпадала с именем архива.

так как Вы ввели

inux пишет:

Введите имя архива:
15
Выбран архив: 15
unzip:  cannot find or open /var/mobile/Media/general_storage/iLEX/icon/15, /var/mobile/Media/general_storage/iLEX/icon/15.zip or /var/mobile/Media/general_storage/iLEX/icon/15.ZIP.

не будет найдено имя архива так как введен порядковый номер.

Верить нельзя никому...

13

нужно что бы при выборе было видно дату и время.
что для этого нужно?

14

inux пишет:

нужно что бы при выборе было видно дату и время.

что бы понимать. что восстановится

15

XELFAER пишет:

#распаковываем выбранный архив unzip /var/mobile/Media/general_storage/icon/$name -d / exit 0

можно сделать, что бы подставлялось имя выбранного архива, когда выбираем архив цифрой 15?
unzip /var/mobile/Media/general_storage/icon/$name -d /      \\ получаем  unzip /var/mobile/Media/general_storage/icon/icon_06-09-2012_02:13.zip -d /

16

Fat-Zer пишет:

за вас мне писать лень, так что основные идеи:
1. считываешь список файлов в bash-массив...  хинт: тут могут понадобится циклы...
2. потом печатаешь первые k из них
3. выбираешь n-й
4. и соответственно его распаковываешь
5. ????????
6. PROFIT!!!

чтиво на досуг: http://www.opennet.ru/docs/RUS/bash_scripting_guide/
ЗЫ: в zip архивировать, вообще говоря, плохая идея — он не сохраняет никакие атрибуты, а также линки, трубы и другие необычные файлы...

в bash_scripting ничего не понимаю.
может поможете?   ak

17

#!/bin/bash
STORAGE="/var/mobile/Media/general_storage/"
ARCHIVE_LIST=( $(cd $STORAGE/icon && ls *.zip) )

echo -n "Enter archive number: "
read num

echo "Extracting archive ${ARCHIVE_LIST[ (( $num - 1 )) ]}..."

это идея... а дальше сам...

inux пишет:

вот так у меня реализован бэкап:

ничего криминального...
я бы правда не делал очистку экрана и вынес бы все пути в переменные в начало файла...
соответственно тогда архивировать можно в одно действие, а не дописывать один и тот же архив...
ну и куча других мелочей расходятся с моим миропониманием...

95% процентов проблем находятся между клавиатурой и стулом.

18

Fat-Zer пишет:

это идея... а дальше сам...

Спасибо!

Обращаюсь ко всем "прохожим"!   br
Помогите "допилить" идею Fat-Zer.  bi
Пожалуйста. bh

19 (06.09.2012 22:24:48 отредактировано inux)

...еще раз напомню, у меня нет знаний программирования (
а учить башскриптинг для того, что бы написать самому несколько строк - глупо.
делаю все по интуиции и на готовых примерах! )
я занимаюсь другими вещами...

... сюда пришел за помощью, к профессионалам )
в любом случае, благодарен всем. кто откликнулся!
...буду ждать готовое решение... а вдруг, у кого то  найдется время помочь!  ab

20

inux пишет:

...еще раз напомню, у меня нет знаний программирования (
а учить башскриптинг для того, что бы написать самому несколько строк - глупо.
делаю все по интуиции и на готовых примерах! )
я занимаюсь другими вещами...

... сюда пришел за помощью, к профессионалам )
в любом случае, благодарен всем. кто откликнулся!
...буду ждать готовое решение... а вдруг, у кого то  найдется время помочь!  ab

Ничего глупого в этом нет, все с этого начинают.

Предложи материальное вознаграждение, тогда точно найдутся помощники.

21

подожду доброго самаритянина ) ab

22

XELFAER

подправьте пожалуйста, что бы $name (было именем выбранного архива)  ak



#!/bin/bash
cd /var/mobile/Media/general_storage/icon/

#ищем в каталоге архивы и выводим
for i in *.zip;
do 
echo $((j+=1))'. '$i;
done;

#ввод имени архива
echo "Введите имя архива:";
read name;
echo "Выбран архив: "$name;

#распаковываем выбранный архив
unzip /var/mobile/Media/general_storage/icon/$name -d /
exit 0

23

или одну цифру ввести и "ентер" или "icon_05-09-2012_01:33.zip"

24

inux пишет:

подправьте пожалуйста, что бы $name (было именем выбранного архива)  ak

+ открыть спойлер
#!/bin/bash
cd /var/mobile/Media/general_storage/icon/

#ищем в каталоге архивы и выводим
for i in *.zip;
do
echo $((j+=1))'. '$i;
done;

#ввод номера архива
echo "Введите номер архива:";
read num;
echo "Выбран архив: "$num;

#поиск и присваивание пути архива
i=0;
j=0;

for i in *.zip;
do
echo $((j+=1))'. '$i &> /dev/null;
if [ $j -eq $num ]
then
    arh=$i;
fi
done;

#распаковываем выбранный архив
unzip /var/mobile/Media/general_storage/icon/$arh -d /
exit 0
Верить нельзя никому...

25 (08.09.2012 04:57:53 отредактировано inux)

XELFAER

Все работает!
Можно подправить еще  в этом коде? )

+ открыть спойлер
#!/bin/bash

echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';
echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';
echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';

cd /var/mobile/Media/general_storage/icon/

echo 'Список архивов для восстановления'
echo ''

#ищем в каталоге архивы и выводим
for i in *.zip;
do
echo $((j+=1))'. '$i;
done;

#ввод номера архива
echo ''
echo "Введите номер архива для восстановления:";
read num;


echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';
echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';
echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';


echo "Выбран архив: "$num;

#поиск и присваивание пути архива
i=0;
j=0;

for i in *.zip;
do
echo $((j+=1))'. '$i &> /dev/null;
if [ $j -eq $num ]
then
    arh=$i;
fi
done;

#распаковываем выбранный архив
unzip -o /var/mobile/Media/general_storage/icon/$arh -d /

echo ''

echo 'Архив успешно восстановлен!
Требуется сделать Респринг!'

echo ''

exit 0

иногда проскакивает такая "бяка" :

 inflating: /etc/hosts              
/etc/hosts:  write error (disk full?).  Continue? (y/n/^C) y

хотя добавил unzip -o

можно сделать, что бы не было запроса, а автоматом (yes)
и вообще, можно сделать, что бы на все возможные запросы, которые могут быть  - было (yes)
...что бы перезаписывалось все без запросов, и ни стопорилось ни при каких условиях - распаковка продолжалась.

и еще, если не точный ввод, то получаем сейчас такое:

+ открыть спойлер
Выбран архив: dfdfdfdtrt43yhreherwtewtgewgege
/usr/bin/zzz: line 41: [: dfdfdfdtrt43yhreherwtewtgewgege: integer expression expected
/usr/bin/zzz: line 41: [: dfdfdfdtrt43yhreherwtewtgewgege: integer expression expected
/usr/bin/zzz: line 41: [: dfdfdfdtrt43yhreherwtewtgewgege: integer expression expected
/usr/bin/zzz: line 41: [: dfdfdfdtrt43yhreherwtewtgewgege: integer expression expected
/usr/bin/zzz: line 41: [: dfdfdfdtrt43yhreherwtewtgewgege: integer expression expected
/usr/bin/zzz: line 41: [: dfdfdfdtrt43yhreherwtewtgewgege: integer expression expected
/usr/bin/zzz: line 41: [: dfdfdfdtrt43yhreherwtewtgewgege: integer expression expected
/usr/bin/zzz: line 41: [: dfdfdfdtrt43yhreherwtewtgewgege: integer expression expected
/usr/bin/zzz: line 41: [: dfdfdfdtrt43yhreherwtewtgewgege: integer expression expected
/usr/bin/zzz: line 41: [: dfdfdfdtrt43yhreherwtewtgewgege: integer expression expected
/usr/bin/zzz: line 41: [: dfdfdfdtrt43yhreherwtewtgewgege: integer expression expected
/usr/bin/zzz: line 41: [: dfdfdfdtrt43yhreherwtewtgewgege: integer expression expected
/usr/bin/zzz: line 41: [: dfdfdfdtrt43yhreherwtewtgewgege: integer expression expected
/usr/bin/zzz: line 41: [: dfdfdfdtrt43yhreherwtewtgewgege: integer expression expected
/usr/bin/zzz: line 41: [: dfdfdfdtrt43yhreherwtewtgewgege: integer expression expected
/usr/bin/zzz: line 41: [: dfdfdfdtrt43yhreherwtewtgewgege: integer expression expected
/usr/bin/zzz: line 41: [: dfdfdfdtrt43yhreherwtewtgewgege: integer expression expected
/usr/bin/zzz: line 41: [: dfdfdfdtrt43yhreherwtewtgewgege: integer expression expected
/usr/bin/zzz: line 41: [: dfdfdfdtrt43yhreherwtewtgewgege: integer expression expected
/usr/bin/zzz: line 41: [: dfdfdfdtrt43yhreherwtewtgewgege: integer expression expected
/usr/bin/zzz: line 41: [: dfdfdfdtrt43yhreherwtewtgewgege: integer expression expected
/usr/bin/zzz: line 41: [: dfdfdfdtrt43yhreherwtewtgewgege: integer expression expected
/usr/bin/zzz: line 41: [: dfdfdfdtrt43yhreherwtewtgewgege: integer expression expected
/usr/bin/zzz: line 41: [: dfdfdfdtrt43yhreherwtewtgewgege: integer expression expected
/usr/bin/zzz: line 41: [: dfdfdfdtrt43yhreherwtewtgewgege: integer expression expected
/usr/bin/zzz: line 41: [: dfdfdfdtrt43yhreherwtewtgewgege: integer expression expected
/usr/bin/zzz: line 41: [: dfdfdfdtrt43yhreherwtewtgewgege: integer expression expected
/usr/bin/zzz: line 41: [: dfdfdfdtrt43yhreherwtewtgewgege: integer expression expected
/usr/bin/zzz: line 41: [: dfdfdfdtrt43yhreherwtewtgewgege: integer expression expected
/usr/bin/zzz: line 41: [: dfdfdfdtrt43yhreherwtewtgewgege: integer expression expected
/usr/bin/zzz: line 41: [: dfdfdfdtrt43yhreherwtewtgewgege: integer expression expected
/usr/bin/zzz: line 41: [: dfdfdfdtrt43yhreherwtewtgewgege: integer expression expected
/usr/bin/zzz: line 41: [: dfdfdfdtrt43yhreherwtewtgewgege: integer expression expected
/usr/bin/zzz: line 41: [: dfdfdfdtrt43yhreherwtewtgewgege: integer expression expected
/usr/bin/zzz: line 41: [: dfdfdfdtrt43yhreherwtewtgewgege: integer expression expected
/usr/bin/zzz: line 41: [: dfdfdfdtrt43yhreherwtewtgewgege: integer expression expected
/usr/bin/zzz: line 41: [: dfdfdfdtrt43yhreherwtewtgewgege: integer expression expected
/usr/bin/zzz: line 41: [: dfdfdfdtrt43yhreherwtewtgewgege: integer expression expected
/usr/bin/zzz: line 41: [: dfdfdfdtrt43yhreherwtewtgewgege: integer expression expected
/usr/bin/zzz: line 41: [: dfdfdfdtrt43yhreherwtewtgewgege: integer expression expected
/usr/bin/zzz: line 41: [: dfdfdfdtrt43yhreherwtewtgewgege: integer expression expected
/usr/bin/zzz: line 41: [: dfdfdfdtrt43yhreherwtewtgewgege: integer expression expected
/usr/bin/zzz: line 41: [: dfdfdfdtrt43yhreherwtewtgewgege: integer expression expected
/usr/bin/zzz: line 41: [: dfdfdfdtrt43yhreherwtewtgewgege: integer expression expected
/usr/bin/zzz: line 41: [: dfdfdfdtrt43yhreherwtewtgewgege: integer expression expected
/usr/bin/zzz: line 41: [: dfdfdfdtrt43yhreherwtewtgewgege: integer expression expected
/usr/bin/zzz: line 41: [: dfdfdfdtrt43yhreherwtewtgewgege: integer expression expected
/usr/bin/zzz: line 41: [: dfdfdfdtrt43yhreherwtewtgewgege: integer expression expected
/usr/bin/zzz: line 41: [: dfdfdfdtrt43yhreherwtewtgewgege: integer expression expected
/usr/bin/zzz: line 41: [: dfdfdfdtrt43yhreherwtewtgewgege: integer expression expected
/usr/bin/zzz: line 41: [: dfdfdfdtrt43yhreherwtewtgewgege: integer expression expected
/usr/bin/zzz: line 41: [: dfdfdfdtrt43yhreherwtewtgewgege: integer expression expected
/usr/bin/zzz: line 41: [: dfdfdfdtrt43yhreherwtewtgewgege: integer expression expected
/usr/bin/zzz: line 41: [: dfdfdfdtrt43yhreherwtewtgewgege: integer expression expected
/usr/bin/zzz: line 41: [: dfdfdfdtrt43yhreherwtewtgewgege: integer expression expected
/usr/bin/zzz: line 41: [: dfdfdfdtrt43yhreherwtewtgewgege: integer expression expected
/usr/bin/zzz: line 41: [: dfdfdfdtrt43yhreherwtewtgewgege: integer expression expected
/usr/bin/zzz: line 41: [: dfdfdfdtrt43yhreherwtewtgewgege: integer expression expected
/usr/bin/zzz: line 41: [: dfdfdfdtrt43yhreherwtewtgewgege: integer expression expected
/usr/bin/zzz: line 41: [: dfdfdfdtrt43yhreherwtewtgewgege: integer expression expected
/usr/bin/zzz: line 41: [: dfdfdfdtrt43yhreherwtewtgewgege: integer expression expected
/usr/bin/zzz: line 41: [: dfdfdfdtrt43yhreherwtewtgewgege: integer expression expected
/usr/bin/zzz: line 41: [: dfdfdfdtrt43yhreherwtewtgewgege: integer expression expected
/usr/bin/zzz: line 41: [: dfdfdfdtrt43yhreherwtewtgewgege: integer expression expected
/usr/bin/zzz: line 41: [: dfdfdfdtrt43yhreherwtewtgewgege: integer expression expected
/usr/bin/zzz: line 41: [: dfdfdfdtrt43yhreherwtewtgewgege: integer expression expected
/usr/bin/zzz: line 41: [: dfdfdfdtrt43yhreherwtewtgewgege: integer expression expected
/usr/bin/zzz: line 41: [: dfdfdfdtrt43yhreherwtewtgewgege: integer expression expected
unzip:  cannot find or open /var/mobile/Media/general_storage/icon/, /var/mobile/Media/general_storage/icon/.zip or /var/mobile/Media/general_storage/icon/.ZIP.

Архив успешно восстановлен!
Требуется сделать Респринг!

iPhone:~ root# 

а нужно, что бы был чистый экран и

iPhone:~ root#

просто выход...

26

inux пишет:

Можно подправить еще  в этом коде? )

что именно не так?

inux пишет:

иногда проскакивает такая "бяка" :

при каких обстоятельствах?

inux пишет:

и еще, если не точный ввод, то получаем сейчас такое:

что значит не точный ввод?

unzip:  cannot find or open /var/mobile/Media/general_storage/icon/, /var/mobile/Media/general_storage/icon/.zip or /var/mobile/Media/general_storage/icon/.ZIP.

в низу видно что нет такого архива так как не присвоено переменной имя или оно пустое.

inux пишет:

а нужно, что бы был чистый экран и

iPhone:~ root#

просто выход...

в смысле?

Верить нельзя никому...

27

XELFAER пишет:

inux пишет:

    иногда проскакивает такая "бяка" :

при каких обстоятельствах?

когда извлекается архив.
параметр -o     - убирает запросы на перезапись
а вот здесь:

 inflating: /etc/hosts              
/etc/hosts:  write error (disk full?).  Continue? (y/n/^C) y

требуется действия пользователя
нужно, что бы запроса не было, а было продолжение...
кроме параметра -o еще какой то нужен?

28

XELFAER пишет:

    Можно подправить еще  в этом коде? )

что именно не так?

при вводе неправильного параметра или просто, если нажать любую клавишу - должен быть просто выход.
сейчас же  на экране  - "не нужный мусор"
согласитесь, что чистый экран - это лучше? )

Ваш скрипт работает отлично!
Огромное Спасибо!

WMZ в личку можете отправить или на мыло. )

29

XELFAER
Вот так выглядит скрипт сейчас: гляньте пожалуйста.

+ открыть спойлер
#!/bin/bash

#  ====================================
#  Title: ILEX Backup Recovery
#  Author: XELFAER
#  Copyright (c) 2012 :)))
#  ====================================

echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';
echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';
echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';


if [ `id -u` != 0 ]; then echo "Пожалуйста войдите под рутом!
Введите команду su и пароль alpine."; exit 0; fi

if ! [ -a /var/root/Library/Keyboard ]; then
ln -s /var/mobile/Library/Keyboard /var/root/Library/Keyboard
fi

cd /var/mobile/Media/general_storage/icon/

echo 'Список архивов для восстановления'
echo ''

#ищем в каталоге архивы и выводим
for i in *.zip;
do
echo $((j+=1))'. '$i;
done;

#ввод номера архива
echo ''
echo "Введите номер архива для восстановления:";
read num;


echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';
echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';
echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';


echo "Выбран архив: "$num;

#поиск и присваивание пути архива
i=0;
j=0;

for i in *.zip;
do
echo $((j+=1))'. '$i &> /dev/null;
if [ $j -eq $num ]
then
    arh=$i;
fi
done;


find /var/mobile/Library/Preferences/ -type f|grep -v com.apple.|xargs rm


#распаковываем выбранный архив
unzip -o -X -K /var/mobile/Media/general_storage/icon/$arh -d /

echo ''

echo 'Архив успешно восстановлен!
Требуется сделать Респринг!'

echo ''

    echo "Сделать респринг?"
    echo
    echo "Y - ДА"
    echo "N - НЕТ"
   
read person

case "$person" in

  "Y" | "y" )
  echo
respring
exit
  ;;

  "N" | "n" )
  echo
exit 0
  ;;

          * )
   # Выбор по-умолчанию.
   # "Пустой" ввод тоже обрабатывается здесь.
   echo
   echo ""

echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';
echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';
echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';

  ;;

esac

echo

echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';
echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';
echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';echo '';

exit 0

exit 0

30

inux пишет:

#распаковываем выбранный архив
unzip -o -X -K

пришлось аргументы поставить, иначе  - "мама дорогая" ))