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

Moonwalker

Client
Регистрация
16.03.2016
Сообщения
1 560
Благодарностей
1 158
Баллы
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 165
Благодарностей
286
Баллы
83
Вот так расписал.
Нужно просто переименовать task.1.dat в task.dat :D
 

Moonwalker

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

heks

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

Demiz

Client
Регистрация
19.12.2017
Сообщения
173
Благодарностей
107
Баллы
43
Очень интересная статья. Делал похожий шаблон только с бэкапами но на ZD. Поскольку данные все записывались в бд - небыло необходимости бэкапить сам шаблон из-за минимальных правок. А вот прошлый сисадминский опыт показал что 1 бэкапа не достаточно за сутки, а нужно несколько, по крайней мере так спокойней спалось. Прикручу твое решение к ZP. С меня голос. И привет от "Наставники24":-)
 

Вложения

  • Спасибо
Реакции: Moonwalker

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