Еще не все пропало! Восстанавливаем настройки шаблонов ZennoPoster/ZennoDroid

Moonwalker

Client
Регистрация
16.03.2016
Сообщения
1 559
Благодарностей
1 156
Баллы
113
Еще не все пропало!
Восстанавливаем настройки шаблонов ZennoPoster/ZennoDroid

Изначально я подавал заявку на две темы, причем, эта была именно «как небольшая полезная статья+шаблон», а основной планировалась другая статья, касающаяся ZennoDroid. Первую статью я уже даже написал, пошел немного переделать шаблон под конкурс и… оказалось, что он не работает. Причем, простые и очевидные решения не помогли быстро починить, а серьезнее разбираться времени уже толком не осталось (да, сам знаю, что затянул с проверкой, в следующий раз учту)… Сперва решил в целом пропустить конкурс, потому как с этой статьей/шаблоном казалось несколько странно участвовать, но пообщался с админами и решил, что пусть будет. В конце концов, может, кому-то пригодится…


125575


Думаю, если не у всех опытных зенноводов, то у многих – точно, случался момент, когда запускаешь ZennoPoster (особенно, если он сам вырубился по какой-либо причине), а там – пусто… И одно дело, когда у тебя там была всего пара-тройка шаблонов, которые быстро можно восстановить, и совсем другое – когда десятки, а то и сотни. Причем, у каждого – свое название, свои настройки и свое расписание. Я столкнулся впервые с подобной ситуацией, когда шаблонов в ZennoPoster было всего около пятидесяти. У меня ушло два дня на то, чтобы вспомнить, что там вообще было добавлено, какие настройки были у каждого шаблона (это на край можно хотя бы экспортировать), но, главное, когда это все должно запускаться (что-то стартовало по своему расписанию, что-то запускалось одно за другим, что-то ждало внешних сигналов). В общем, на восстановление ушло много и времени, и нервов. Причем, не уверен, что я тогда все восстановил, но если что-то с тех пор не понадобилось, значит, и не особо нужно было. В конце концов, расхламляться порой стоит и в ZennoPoster’е ))

Восстановив работоспособность сервера, я полез копать, как можно обезопасить себя от подобных ситуаций, поскольку больше с такими приколами сталкиваться не хотелось.

Так я узнал про волшебный Tasks.dat

125574


125560


Вполне логично, что все настройки ZennoPoster где-то хранятся. Оказалось, в папке
C:\Users\{USERNAME}\AppData\Roaming\ZennoLab\ZennoPoster\{ZennoVersion}*\ZennoPoster\

* {ZennoVersion} – это версия ZennoPoster, в 7ке будет просто «7», в пятерке – 5, в восьмерке, у кого уже стоит ( :D ), 8


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

125561


За список шаблонов отвечает файл Tasks.dat, внутренние настройки самих шаблонов хранятся в файле ZennoBoxUserSettings.xml

Более того, разработчики ZennoPoster сделали удобную вещь – кроме самих файлов настроек там хранятся и некоторые их бэкапы (они имеют числа в названиях).

Т.е., в случае фосмажора можно просто взять любой из бэкапов (вроде логично смотреть на время бэкапа, но размер оказался намного важнее (!) – последние бэкапы уже тоже могут быть "пустыми") и пересохранить его под первоначальным названием. И все станет «как было»…

125573


Видимо, я везучий, потому как буквально через неделю я повторно столкнулся с такой ситуацией (вечером вырубило свет дома, включил комп, а в Zenno опять пусто). Перепроверил несколько раз (мало ли, просто баг при загрузке), нет – не ошибся.

Уверенный, что сейчас все быстро восстановлю (я же уже знаю, как), я полез в папку и очень удивился. Все копии файлов настроек имели тот же размер и были сохранены буквально в течение нескольких последних минут. Т.е., бэкапы есть, но они тоже перезатерлись. До конца я не разобрался, но есть ощущение, что при каждом запуске ZennoPoster или, возможно, при добавлении шаблонов/редактировании настроек. Поэтому, если возникла проблема, лучше закрыть Зенку и больше не запускать, так меньше шансов, что нужные копии перезапишутся.

В этот раз мне повезло: в тот момент, когда я узнал про Tasks.dat, и пока экспериментировал с восстановлением, я сделал себе копию этой папки. Так что, восстановление заняло у меня буквально несколько минут.

Но стало понятно, что бэкапы, которые делает сам ZennoPoster – не панацея. Скорее всего, где-то все это можно задать в настройках самой Зенки (сколько бэкапов хранить, как часто сохранять и т.д.), но доверия ей в этом плане уже особо не было ))

В общем, надо бэкапить самому. Так спокойнее.

125572


Естественно, в сети можно найти десятки, если не сотни способов бэкапа определенной папки на компе по расписанию, но я не стал заморачиваться и просто написал простенький шаблон, который это будет делать. Ну и добавил в ZennoPoster )))

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

Сперва в шаблон добавил дополнительное архивирование папки, потом добавил возможность задавать, сколько последних бэкапов хранить (задачи хранить все и нет, недели-другой – более чем достаточно).

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

Запускаю по расписанию в час ночи. В итоге теперь все выглядит аккуратненько.

125562


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

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

125563


125571


В общем, предлагаю установить правила в нашем Клубе ;-)

Первое правило нашего Клуба – рассказывать всем о том, как восстановить настройки шаблонов!

Второе правило нашего Клуба – делать бэкапы, чтобы с первым правилом было проще.

125564


125570


Уже в процессе, когда я готовил эту статью, я подумал, что такую же штуку можно провернуть и с настройками ZennoDroid (который появился у меня благодаря прошлому конкурсу) )))

Поскольку в шаблоне можно указать любую папку, мы можем просто найти папку с настройками Droid’а и указать ее шаблону в ZennoPoster. И пусть бэкапит.

Если что, папка находится по пути:
C:\Users\<USERNAME>\AppData\Roaming\ZennoLab\ZennoDroid\2\ZennoPoster\

125565


Восстанавливаются настройки тем же способом.

125569


Решив, что одним шаблоном я убил сразу двух зайцев, я уже готов был закрывать проект. Но неожиданно понял, что для бэкапа настроек ZennoDroid, в таком случае, надо, чтобы на этой машине также работал и ZennoPoster. Да, уверен, у многих они крутятся параллельно на одной машине. Но далеко не у всех. А держать отдельно лицензию для бэкапа на машине – такое себе )))

И я подумал, что можно написать такой же шаблон и для ZennoDroid, тем более, что там вся работа просто с файлами на компе, все кубики те же.

Лень – двигатель прогресса. Хоть это и кубики, повторять даже такой простой проект заняло бы какое-то количество времени, которого сейчас катастрофически не хватает (основная причина, почему не смог добраться до фикса шаблона к основной статье). Поэтому я решил попробовать одну вещь, используя мой любимый метод – «метод тыка»

В общем, мне повезло, что все подобные проекты я всегда делаю на 5-й версии ZennoPoster. Я просто взял файл шаблона, удалил в нем блок шифрования (в 7ке он не удаляется, поэтому остается привязка к минимальной версии, которая 7.х, а в Droid версия – 2.х, т.е., чисто по цифрам – ниже), сменил расширение файла с .xmlz на .droid и открыл в ProjectMaker для ZennoDroid.

125566

Да, для меня это было неожиданно, потому что я просто попробовал, не надеясь на успех. Такой вот лайфхак неожиданный получился (и в голове уже мысли роятся, что еще из полезного можно быстро перетащить на машину, где крутится ZennoDroid).

Немного подправил, проверил в Дроиде – оно работает. Так что, и на ZennoDroid можно бэкапить все, что нужно. Без дополнительного использования Постера.

125568


В целом, эти шаблоны можно использовать для бэкапов не только настроек ZennoPoster/ZennoDroid. Можно указать любую важную папку, и пусть сохраняет (было же, да, что файлы какие-то рабочие бились? по глазам вижу, что было). На любой машине, на любой диск или куда-нить в облако, если оно подключено в папку на компе. В общем, можно найти и дополнительные варианты применения.

На всякий замечу, что исторически привык к WinRAR, так сложилось. Поэтому во всех проектах использую его. Если кому удобнее WinZip или, например, tar, просто поменяйте ключи на свои. У кого есть необходимость и желание заморочиться, можете добавить кубики заливки файлов на FTP ))

125567


Уверен, большинство форумчан (особенно, те, кто хоть раз столкнулся с «девственно чистой зенкой»), и знают прекрасно, как восстановить настройки (определенно), и давно уже бэкапят их (тут мой жизненный опыт заставляет сомневаться, но я в вас верю). Но судя по тому, что пользователи шаблонов нередко обращаются ко мне с подобной проблемой (а некоторые пользуются Зенкой уже несколько лет), видимо, это не «разовая акция», такое время от времени случается. И никто не застрахован…

Вообще, когда сам впервые узнал про Tasks.dat, был удивлен, что информацию о том, где хранятся настройки, не показывают на главном экране после, допустим, первого запуска ZennoPoster ))) Не факт, что все прочитают внимательно, но где-то на подкорке бы отложилось, и при возникновении проблем хотя бы было бы понимание, что проблема точно как-то решается, надо просто вспомнить/поискать.

Так что, у данной статьи было две задачи. Рассказать о том, как можно восстановить настройки через Tasks.dat (независимо от того, пропало оно само или же вы сами случайно удалили нужные шаблоны или скинули их настройки), тем, кто об этом не знает. И поделиться шаблоном (а получилось, еще и двумя шаблонами – в том числе, и для ZennoDroid) с теми, кто знает, но у кого не доходят руки организовать бэкап этих настроек.

Даже если хотя бы одному человеку они сэкономят время, нервы и пару седых волос, свою миссию посчитаю выполненной ;-)
Ну а я пошел чинить шаблон для Droid’а к следующему конкурсу. Надеюсь, успею ))

 

Вложения

Последнее редактирование:

heks

Client
Регистрация
01.10.2013
Сообщения
1 164
Благодарностей
286
Баллы
83
Вот так расписал.
Нужно просто переименовать task.1.dat в task.dat :D
 

Moonwalker

Client
Регистрация
16.03.2016
Сообщения
1 559
Благодарностей
1 156
Баллы
113
Вот так расписал.
Нужно просто переименовать task.1.dat в task.dat :D
Не всегда tasks1.dat )) В нем уже может быть пусто тоже ))
Ну и не забываем про ZennoBoxUserSettings.xml. А то без него тоже грустно )))
ps. Насчет "расписал" - у чукчи профдеформация, так что, прошу прощения...
 

heks

Client
Регистрация
01.10.2013
Сообщения
1 164
Благодарностей
286
Баллы
83
Не всегда tasks1.dat )) В нем уже может быть пусто тоже ))
Ну и не забываем про ZennoBoxUserSettings.xml. А то без него тоже грустно )))
ps. Насчет "расписал" - у чукчи профдеформация, так что, прошу прощения...
да нормальная статья.))) не одного человека тут видел кто спрашивает как восстановить когда крошится зенка
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)