Посмотреть на Яндекс.Фотках
понедельник, 23 декабря 2013 г.
Так умирают жёсткие диски
Посмотреть на Яндекс.Фотках
среда, 18 сентября 2013 г.
Самописный скрипт для ротации логов
@ECHO OFF
SETLOCAL
SET ren_list=D:\Temp\1\ren_list.txt
FOR /F %%f in ('TYPE %ren_list%') DO (
IF EXIST %%f.bak DEL %%f.bak
IF EXIST %%f REN %%f %%~nxf.bak
)
:END
Сначала это были две строчки, которые, что называется, решали задачу "в лоб":
REM Проверяем - если есть старая версия лог-файла, то удаляем её
IF EXIST D:\Temp\1\logfile.bak DEL D:\Temp\1\logfile.bak
REM Переименовываем лог-файл
REN D:\Temp\1\logfile.txt logfile.bak
Потом подумалось, что может оказаться больше одного лога, которые жрут место и которые надо бы периодически удалять. Не, можно, конечно, продолжать лепить строчки дальше, для каждого файла, но это же НЕКРАСИВО. Поэтому я начал чесать лысину в надежде, что это поможет придумать, как сделать красиво :-)
Пример кода для работы со списком у меня уже был, вот от него и начал плясать. Сначала было два списка: файлы, которые нужно переименовать и имена, которые должны получиться. Потом стало понятно, что второй список не нужен. Затем пришлось играться с именами файлов - полное имя/короткое имя, с расширением .bak и без него. Ну и всё такое. Поначалу получалась какая-то ересь, но постепенно из неё как-то получились эти строчки.
Как программисты пишут НОРМАЛЬНЫЕ программы, мне не понять. Они ведь по две строчки кода в день не пишут, верно?
вторник, 10 сентября 2013 г.
Я не программист
@echo off
setlocal
set blat=D:\Temp\blat307\full\blat.exe
set log=D:\path\to\Programs\blat307\files\log.txt
set list=D:\path\to\Programs\blat307\files\maillist.txt
set smtpsender=username@yandex.ru
set smtpserver=smtp.yandex.ru
set smtpport=25
set smtpuser=username@yandex.ru
set smtppwd=password
set subj=D:\path\to\Programs\blat307\files\subj.txt
set msg=D:\path\to\Programs\blat307\files\msg.txt
set logfile=D:\path\to\Programs\blat307\log\blat_log.txt
set codepage=Windows-1251
for /f %%f in ('type %list%') do (
%blat% -to %%f -f %smtpsender% -server %smtpserver% -port %smtpport% -u %smtpuser% -pw %smtppwd% -log %logfile% -charset %codepage% -sf %subj% -bodyF %msg% >> %log%
)
:END
Ошибка была в ДНК, как обычно :-)
Не надо было в конце дописывать
>> %log%! И вот из-за этой, стандартной, в общем-то, процедуры перенаправления вывода, весь сыр-бор. Кто ж знал-то. Ну да, в оригинале её не было, зачем-то дописал, хотя там и так есть ключ, указывающий на запись в лог.
вторник, 23 апреля 2013 г.
Завести Вику
Я, наверное, всё же тормоз и слоупок, но про сервис Сайты Google узнал совсем недавно. Вернее, знал-то я про них давно, подтверждением тому служит "сайт", созданный там ещё в 2009 году (14 окт. 2009 г., 16:14). Потом забытый до 20 мая 2012 г., 7:29. И вот на прошлой неделе я снова о нём вспомнил. Случайно наткнулся на статью о том, как быстренько можно склепать для себя что-то вроде википедии, только без википедии :-)
А мне, говоря по правде, собственный сайт нужен как раз для того, чтобы иметь доступ к не очень большому набору статей, руководств к действию. Ну, например, как быстро переустановить винду из готового образа. Или посмотреть текст самописного скриптика, который удаляет из той же винды "мусор". В связи с тем, что сайты, созданные на Народе переехали на Ucoz, пришлось задумываться об альтернативе. Ну, не нравится мне этот Юкоз, какой-то он запутанный весь.
Сайты гугла тоже поначалу, в 2009 году, простыми не показались, или не надо мне тогда было, не помню уже. Но после прочтения статьи полез попробовать, сделал отдельный сайт "Вику", накидал туда собственных текстов, попутно разобрался немножко, как структуру создавать... Так ведь красотища же! Всё просто, понятно и даже где-то красиво. Теперь потихоньку сливаю туда статьи из здешней, локальной Вики, те, которые писал по мотивам собственных наработок. Кое что, конечно, приходится менять, логины/пароли, например, заменяю на "username" и "password", ибо нефиг. А в остальном - даже оформление страницы переносится полностью! В HTML лезть вообще не приходится. В общем, для меня - самое то.
среда, 17 апреля 2013 г.
Отправка e-mail из командной строки Windows
Вот насколько всё же проще людям в англоговорящих странах! Во-первых, раскладку клавиатуры им переключать не надо. Во-вторых - с кодировками символов заморочек никаких. А я вот каждый раз, когда сталкиваюсь с тем, что надо что-то в консоли сделать с русскими символами, проклинаю разработчиков Windows. Ну, честное слово, это же издевательство какое-то! Даже в рамках ОДНОЙ операционной системы используется ДВЕ кодировки символов. И каждый раз я заново бьюсь головой об эти разногласия между ними. Вот из последнего. Хочется мне, чтобы в пятницу вечером текст из определённого файлика рассылался группе товарищей. Группа, прямо скажем, небольшая, шесть человек или около того, но всё равно делать рассылку вручную надоедает. Для такого случая существуют консольные почтовые клиенты, для которых можно написать небольшой скрипт, и всё, раз в неделю (или как угодно) планировщик будет его запускать и делать за тебя всю работу. Собственно, мне так уведомления с серверов приходят - если что не так, скрипт присылает письмо. Но, зная о проблеме с кодировками, я все уведомления для себя написал транслитом. А для людей мне нужно отправлять нормальный русский текст, нормальными русскими буквами. Утилитка, которой я пользуюсь, с оригинальным названием Blat, вроде бы умеет работать с кодировками. Поэтому я написал вот такой скриптик:
@echo off
setlocal
set list=D:\path\to\Programs\blat307\files\maillist.txt
set smtpsender=username@yandex.ru
set smtpserver=smtp.yandex.ru
set smtpport=25
set smtpuser=username@yandex.ru
set smtppwd=password
set subj=D:\path\to\Programs\blat307\files\subj.txt
set msg=D:\path\to\Programs\blat307\files\msg.txt
set logfile=D:\path\to\Programs\blat307\log\blat_log.txt
set codepage=Windows-1251
for /f %%f in ('type %list%') do (
D:\Temp\blat307\full\blat.exe -to %%f -f %smtpsender% -server %smtpserver% -port %smtpport% -u %smtpuser% -pw %smtppwd% -log %logfile% -charset %codepage% -sf %subj% -bodyF %msg%
)
ECHO Sended > %msg%
:END
То есть чёрным по белому написано, что codepage у нас Windows-1251. Но почему-то письма приходит через раз крякозябрами. Что тому причиной - поди разберись. С виду-то всё правильно!
среда, 10 апреля 2013 г.
Удалённый рабочий стол. Из Linux
среда, 16 января 2013 г.
Трудовыебудни
Посмотреть на Яндекс.Фотках Сегодня приехал ко мне в починку компьютер, который, как я считал, загружался с флэшки с помощью ThinStation. Как выяснилось, ThinStation там было, а вот флэшки не было, был древний жёсткий диск, который благополучно и умер. Впрочем, флэшка или жёсткий диск, без разницы, реанимации ни то, ни другое не поддаётся. Поэтому пришлось думать, как по возможности быстро поставить "пациента" обратно в строй. Предложение поставить Windows показалось мне не самым подходящим. Зачем это всё богачество ради одной простой операции - при загрузке сразу же подключиться к серверу терминалов? Больше ничего на этом компьютере не предполагается, только терминальная сессия. Собственно, потому и установлена была ThinStation. Но эту штуку я как-то с наскоку победить не сумел, поэтому "по быстрому" тоже бы не получилось. Но на столе лежал жёсткий диск с наклейкой "Linux терминал, рабочий". Это я когда-то, в период разбирательств с терминалами, поставил на него какой-то дистрибутив Linux и настроил тестовое подключение к нашему серверу. И оно работало. Поэтому воткнул этот жестяк в "пациента", включил... И чудо свершилось! Правда, чудо пришлось допиливать напильником, попутно вспоминая, как и что делать, потому что уже подзабылось всё - и где в IceWM автозапуск программ, и как настроить сеть, чтобы настройки не слетали, и как сделать окно терминала на весь экран. Но, слава гуглу с яндексом, все эти вопросы удалось решить. И завтра, надеюсь, машинка поедет обратно на своё рабочее место. Нужно только будет на месте подправить пару файликов, адаптировать к условиям проживания, так сказать. И ещё не забыть (и не забить!) задокументировать все настройки, чтобы не было потом мучительно больно напрягать мозг в попытках вспомнить всё.