четверг, 9 июля 2015 г.

Как поймать призрака в консоли

console.png

У меня на работе есть несколько серверов, с которых нужно регулярно, лучше ежедневно, делать архивные копии. Я почему-то решил не использовать для этого разные программы вроде Backup32 и Cobian Backup, а написать свой "велосипед". Правда, программист из меня как из подушки ракета, поэтому я написал не то чтобы прям программу, я написал довольно несложный скрипт, cmd-файл, который делает всё, что мне нужно. Даже умеет отправлять на электронную почту письма с результатами своей работы.

И вот с недавних пор один из серверов начал себя вести как-то странно. Сначала он мне присылал три письма о том, что архивация баз завершилась неудачно, на сетевом диске архив не обнаружен. Все три письма были отправлены в одно и то же время, в 3:02. Затем, скажем, в 3:07, 3:15 и 3:28 приходили письма, что всё хорошо. Я всю голову изломал, что же случилось, почему всё работало и вдруг перестало. Ну, не совсем перестало, а стало работать странно. Потому что СНАЧАЛА скрипт должен сделать архивы, а это время, и только ПОСЛЕ проверить наличие архива на сетевом диске. А у меня получалось, что сначала проверка, отправка письма об ошибке, затем архивация, снова проверка и отправка писем, что всё хорошо.

Какое-то время я на это внимания особо не обращал, потому что архивы всё-таки делались, пусть и со странностями. Да и времени свободного на разбирательства, если честно, не хватает. У нас всё бегом-бегом, починили, что совсем уж сломалось, побежали дальше. А тут вроде как работает же. Но вчера всё решил попробовать разобраться, с какого перепуга оно так стало вести себя таким странным образом.

Одним из предположений было, что по непонятной причине запускается два экземпляра скрипта, и из-за этого возникает "конфликт интересов". Это, кстати, не я такой умный, это мне на жулике подсказали. Поэтому я полез в планировщик и перенёс запуск задания с трёх ночи на два часа. С мыслью, что если я не вижу, откуда запускается второй экземпляр, если он есть, то и время его запуска изменить не смогу. Так что, если заданий два, то и писем я получу в два раза больше - и в два часа, и в три.

В общем-то, так и вышло. Двухчасовое задание прислало свои три письма, последовательно, все три письма об успешном завершении. А в 03:02 пришло ОДНОВРЕМЕННО ещё три письма, что... Всё хорошо! И тут я решил посмотреть, а откуда, собственно, письма приходят?

Результат был... Скажем так, неожиданный. Оказывается, второй экземпляр задания запускался совсем на другом сервере, на котором совсем другая база крутится. А скрипт запускался всё тот же, что и на первом сервере. Поэтому он, естественно, ничего не находил, не архивировал и мгновенно отправлял три письма с ошибкой. А "правильный" сервер в это время пыхтел, архивировал данные и, когда всё заканчивал, отправлял свои письма, что всё хорошо. О как!

А получилось всё очень просто. Не так давно открывали мы новый магазин и, чтобы долго не возиться, мой непосредственный начальник просто сделал копию с предыдущего сервера, потом прибил на нём старые базы, создал одну нужную и запустил в работу. А задание в планировщике, и скрипт, им запускаемый, остались прежние! Вот они мне и слали полные отчаяния письма! А я, бестолочь такая, никак не мог их понять :-)

Теперь всё вроде поправил, на втором сервере прописал правильные параметры скрипту. Завтра посмотрю на результат.

пятница, 1 мая 2015 г.

Отцы и дети

Компьютер, которым я пользуюсь на работе, мягко говоря, не новый. Он уже не раз чиненый, конденсаторы на материнке перепаяны, вентилятор на видеокарте прикручен к радиатору на саморезы... На свалку ему, конечно, ещё рано, но уже давно хочется что-то поновее. Вот вчера попался мне в руки бесхозный пока что системник, я решил на него посмотреть, потестировать. Запустил архиватор 7zip в режиме тестирования на обеих машинках, сегодня утром сравнил картинки. Вот что из всего этого получилось:



Ну, что, невооружённым, что называется, глазом видно, что ущербный, но молодой и борзый Celeron рвёт старичка Core2Duo, как Тузик грелку. Может, есть смысл оставить свой снобизм по поводу ущербности Селеронов, да и поменяться?

вторник, 24 марта 2015 г.

Вот и нам "письмо счастья" принесли - вирус .vault

Как же мне всё-таки нравятся люди, с которыми я работаю! Получили они письмо по электронной почте, непонятно от кого, с невнятным текстом и приложенным файлом, что-то там про "акт сверки.zip". Внутри zip-архива лежал файлик с расширением .js. Не .doc! Не .xls! А, с точки зрения обычного менеджера, чёрти что и сбоку бантик. Но, раз прислали, надо же открыть, верно? Люди же старались, писали, отправляли! (- Не ходи туда, тебя там ждут неприятности! - Как же не ходить? Они ведь ждут!) Поэтому тыкнули в загадочный файлик и... И чо-то не открылось ни фига.

Подозрительный файл не открывается на одном компьютере? Так давайте попробуем на соседнем! Хм, странно, и здесь не открылся. Так у нас в кабинете ещё есть, давайте пробовать, пока не откроется!

К счастью, когда зараза ещё только подбиралась к третьему компьютеру, на первом уже вылезло окошко, что "Ваши файлы зашифрованы, и ничего вы с этим сделать не сможете. Платите денежки".

Теперь они страдают - как же так, почему всё, что нажито непосильным трудом, теперь превратилось в бесполезный набор байтов на жёстком диске? Ну, про байты и жёсткий диск я, конечно, приврал, эти люди таким словами не пользуются. И я их за это не осуждаю, в конце концов, матом не ругаются, уже хорошо. Но обыкновенный здравый смысл должен присутствовать? Вот лежит у тебя на столе морковка, огурец и непонятная хрень - ты потащишь её, эту хрень, в рот? Наши тащат.

Впрочем, таких много, вот характерный крик о помощи: "Добрый день! Утром на почту прислали файл "акт сверки", решила проверить загрузила этот файл, .vault, этот вирус заблокировал и зашифровал все файлы, с вирусом был текст, он ниже. ПОМОГИТЕ!"


Так что, люди, не повторяйте наших ошибок, не открывайте разные "левые" файлы, не тащите в рот всякую гадость - здоровее будете. Чище руки - твёрже кал!