ZennoApocalypse или восстание зенки из мертвых

backoff

Client
Регистрация
20.04.2015
Сообщения
6 355
Реакции
6 640
Баллы
113
Привет всем.
Сегодня расскажу как я решил вопрос с падением зенки.
Эта статья будет полезна людям, которые имеют сервера, на которых работает и периодически падает зенка или перезагружается сервак.
И так все банально и просто, как оказалось, любой запилит данный хак.

Что нам надо.
  1. *.bat файл
  2. планировщик задач
  3. телеграм
  4. позитивное настроение )
Создаем батник, и называем его как хотим. Например ZennoStart.bat
В него вписываем этот код (спасибо этой теме)
Код немного урезан за ненадобностью остального

Код:
Развернуть Свернуть Копировать
@echo off

SETLOCAL EnableExtensions
set EXE=ZennoPoster.exe
FOR /F %%x IN ('tasklist /NH /FI "IMAGENAME eq %EXE%"') DO IF %%x == %EXE% goto FOUND
echo Not running
:: Указываем полный путь к файлу Zennoposter.exe
start "" "C:\Program Files (x86)\ZennoLab\RU\ZennoPoster Pro\5.16.2.0\Progs\ZennoPoster.exe"
wget "https://api.telegram.org/СЮДА ПИШЕМ API ВАШЕГО БОТА и не забываем в начало строки написать bot/sendMessage?chat_id=СЮДА МЫ ПИШЕМ ЧАТ ID&text=Сюда мы пишем текст который бует приходить" --no-check-certificate
exit 0
:FOUND
echo Running

Как получить api бота - гуглите, на этот счет огромная куча видосов на ютубе.
Как получить чат id я писал здесь - http://zennolab.com/discussion/thre...m-opovescheniem-v-telegram.46438/#post-344353

далее качаем wget, без этого отправка в телегу будет невозможна!
Качаем от сюда - http://gnuwin32.sourceforge.net/packages/wget.htm (первая ссылка на скачку - http://downloads.sourceforge.net/gnuwin32/wget-1.11.4-1-setup.exe )
Устанавливаем.

Итак по полочкам!

Как работает код.
  • батник проверяет запущена ли зенка в процессах, если ДА то батник ничего не делает, если НЕТ, то батник запускает зенку и отправляет сообщение в телегу.
  • обязательно проверьте все полные пути к файлу зенки, они могут отличаться изза версий
  • В этой же теме вы найдете как настроить диспетчер задач - http://zennolab.com/discussion/thre...e-padenija-ili-zdravstvuj-zdorovyj-son.16934/
я настроил на каждые 5 мин проверки.

PS| Выражаю благодарность
@ZennoScript за саму статью и основную часть
@ZTS за помощь в настройке батника и отлове багов
Ну и себе любимому за инициативу и разбор полетов с телегой :D

Берите пример, друзья, делитесь полезностями, делайте апгрейды старых тем.
Всем Бобра )
 
Что то у меня на десятке не отправляется сообщение в телегу.
Мой бот рабочий, с апи и айди все в порядке- из проектов шлет сообщения.
Батник запускает ZP если он отключен, а телега молчит. Подскажите, где поковырять.
 
ну да, конечно
2018-04-06_161111.png
 
пишет:
"wget" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
 
Батник запускает ZP если он отключен, а телега молчит. Подскажите, где поковырять.
api.telegram.org тоже заблочен ркном, надо слать через прокси (можно паблик не-ру) и чекать в ответе успешную доставку, тогда норм приходит
 
что должно быть установленно на ПК, чтобы работала версия 5.17?
У меня раньше была версия 5.15., она работает прекрасно и сейчас. А новая версия выдаёт ошибку при попытке загрузить настройки любого проекта. Проверено на ПК, на ноутбуке и на выделенном сервере. Везде одно и то же.
 
А если падает сервак из-за зенки и сам не перезагружается, как быть? Наоборот каждые 5 минут слать оповещение, что сервак работает? xD
 
  • Спасибо
Реакции: backoff
Что значит падает из за зенки?

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

А шаб без циклов, память на 70 процентов загружает ее утечки нет.
 
Не нужны никакие батники, достаточно просто взять нижеприведенный код, скомпилировать в IDE, закинуть в папку с exe файлом зеннопостера и запустить
Код:
Развернуть Свернуть Копировать
class Program
    {
        [DllImport("user32.dll")]
        public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);

        [DllImport("user32.dll")]
        static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);

        static void Main(string[] args)
        {
            Console.Title = "capcap";

            IntPtr hWnd = FindWindow(null, "capcap"); //put your console window caption here
            if (hWnd != IntPtr.Zero)
            {
                //Hide the window
                ShowWindow(hWnd, 0); // 0 = SW_HIDE
            }

            Run().Wait();
        }

        public static async Task Run()
        {
            while (true)
            {
                await Task.Delay(60000);
                if (!Process.GetProcesses(".").Any(x => string.Compare(x.ProcessName, "zennoposter", StringComparison.OrdinalIgnoreCase) == 0 || string.Compare(x.ProcessName, "zennobox", StringComparison.OrdinalIgnoreCase) == 0))
                    Process.Start(File.Exists("ZennoPoster.exe") ? @"ZennoPoster.exe" : @"ZennoBox.exe");
            }
        }
    }
 
  • Спасибо
Реакции: AZANIR и Lanidor
А не подскажите где можно посмотреть как скомпилировать в IDЕ
 
там нечего компилировать , но нужно чтоб после падения и рестарта сервера запускался и этот файл понимаю его добавить в автозагрузку , но заметил если файл запустить как его убить в процессах ? , поэтому в планировщике батник самое то + он мне шлет уведомление на телегу.
 
Спасибо! Получилось, но долго бодался с wget.

Не хотело работать с установщиком wget, который дал топикстартер.

Вот эта инструкция сработала:
https://www.poftut.com/download-install-wget-windows/

Качал Download From Eternallybored - 64 Bit Binary - https://eternallybored.org/misc/wget/releases/wget-1.19.1-win64.zip
Ну и потом в windows перменной дополнил Path.

В cmd все еще пишет:
"wget" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.

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

Хочу чтобы после падения Зенки батник создавал файл, а проект в ЗП стартовал по сигналу появления этого файла.
 
Подскажите, как можно дополнить код батника, чтобы он еще создавал файл в определенной папке?

Хочу чтобы после падения Зенки батник создавал файл, а проект в ЗП стартовал по сигналу появления этого файла.

Код:
Развернуть Свернуть Копировать
Echo Привет> myfile.txt
 
  • Спасибо
Реакции: AZANIR и wellgo
А не подскажете как сделать все тоже самое только без телеги? ) Чтоб батник просто проверил, запущена ли зенка, или нет и если нет, то запустил? )
 
В общем удалил вгет из батника, запустил батник, вроде бы норм, пытается запустить зенку, но спрашивает разрешения администратора.

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

Вложения

  • Screenshot.jpg
    Screenshot.jpg
    191,8 KB · Просмотры: 534
все тоже самое только без телеги?
Код:
Развернуть Свернуть Копировать
@echo off
SETLOCAL EnableExtensions
set EXE=ZennoPoster.exe
FOR /F %%x IN ('tasklist /NH /FI "IMAGENAME eq %EXE%"') DO IF %%x == %EXE% goto FOUND
echo Not running
:: Указываем полный путь к файлу Zennoposter.exe
start "" "C:\Program Files (x86)\ZennoLab\RU\ZennoPoster Pro\5.16.2.0\Progs\ZennoPoster.exe"
exit 0
:FOUND
echo Running

но спрашивает разрешения администратора
ну конечно надо по админом быть

А как можно это настроить, не подскажете?
ну простым поиском не судьба?

https://www.youtube.com/results?search_query=как+настроить+диспетчер+задач+на+windows+10
 
  • Спасибо
Реакции: Rina2028 и indigo666
ну конечно надо по админом быть
То есть поменять права юзера на админа? Вроде бы один юзер зареган. Не совсем понял как это делать.
ну простым поиском не судьба?
Спасибо ))) ищу вот пока не нашел то что искал
 
То есть поменять права юзера на админа?
у пользователя должны быть админские права, ну (не уверен можно ли так, вроде можно) добавить запуск программы в исключение, чтоб не появлялась эта табличка
 
  • Спасибо
Реакции: indigo666
  • Спасибо
Реакции: indigo666

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