2016-03-08

Как по порядку переименовать файлы, скачанные wget по списку

Решил скачать комикс из вконтакта, полученный список (listfile.txt) для скачивания имел примерно такой вид:

https://pp.vk.me/c307313/v307313650/1e94/bj560KCwYY4.jpg
https://pp.vk.me/c307313/v307313650/1692/yFPMOuXHLvw.jpg
...
https://pp.vk.me/c307313/v307313650/1e7b/d-MXTKSZr34.jpg
https://pp.vk.me/c307313/v307313650/1e84/Oj_DhH9Fbvw.jpg

Собственно, после скачивания wget'ом (wget -i listfile.txt) я получил неудобоваримый набор файлов с рандомными названиями, и мне захотелось переименовать их в вид 001.jpg 002.jpg, согласно порядку, в котором они были в исходном файле. Хорошенько попотев, получил такой однострочник:

cat ./listfile.txt | tr -d  '\r' |  while read url; do n=$((n+1)); file="`echo $url| sed -e 's/.*\///'`"; newfile="`printf \"%03d\" $n`";  mv  ./"$file"  ./"$newfile".jpg ;  done


Или, для читаемости, так:

cat ./listfile.txt | tr -d  '\r' |  while read url; 
do 
    n=$((n+1)); 
    file="`echo $url| sed -e 's/.*\///'`"; 
    newfile="`printf \"%03d\" $n`";  
    mv  ./"$file"  ./"$newfile".jpg ;  
done

Немного пояснений:

tr -d  '\r'  - исходный файл у меня был виндовосформирован, поэтому в каждой строке там был лишний символ перевода коретки, который мешался

while read url - стандартный цикл построчного чтения файла в переменную url

n=$((n+1)) - переменная n для нового имени файлов, которая будет прирастать на единицу

file="`echo $url| sed -e 's/.*\///'`" - старое имя файла, которое получается путем обрезания левой части ссылки

newfile="`printf \"%03d\" $n`" - новое имя файла, которое состоит из переменной n сформатированной в трехсимвольное отображение (1,2,3 -> 001, 002, 003).

2016-02-15

Не подключаются мобильные устройства по MTP

Если после установки антивируса касперского к компьютеру перестали подключаться смартфоны, стоит проверить ветку реестра:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{EEC5AD98-8080-425F-922A-DABF3DE3F69A}

Если в ней есть ключи UpperFilters или LowerFilters - удалите их. Массово это можно сделать, проимпортировав политиками reg-файл:

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{EEC5AD98-8080-425F-922A-DABF3DE3F69A}]
"UpperFilters"=-
"LowerFilters"=-


Также в интернете встречаются упоминания о ветках:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{36FC9E60-C465-11CF-8056-444553540000} - наличие фильтров тут может привести к неработоспособности всех юсб-устройств,


HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E965-E325-11CE-BFC1-08002BE10318} - ветка, отвечающая за CD-ROM'ы


2016-01-20

Яндекс.Сервер 2010.09: Руководство по установке и эксплуатации

Удивительно, но в инете решительно не гуглится этот документ: yandex-server-manual.pdf
(скачать Яндекс.Сервер 2010.09 win+lin можно по ссылке)

2016-01-14

Логирование изменений конфигурации Cisco Catalyst на syslog

via @ https://networklessons.com/network-management/configuration-change-notification-logging/
! Находясь в режиме конфигурации
Router(config)#archive
Router(config-archive)#log config
! Включаем логирование
Router(config-archive-log-cfg)#logging enable
! Устанавливаем размер локального лога
Router(config-archive-log-cfg)#logging size 500
! Запрещаем сохранять пароли
Router(config-archive-log-cfg)#hidekeys
! Включаем перенаправление на сислог
Router(config-archive-log-cfg)#notify syslog
! Просматриваем локальный лог
Router#show archive log config all

2015-12-01

Zabbix и мониторинг состояния баз Exchange 2010 (с использованием Low Level Discovery)

В результате аварийного отключения сервера, или еще каких-либо непредвиденных обстоятельств, реплики баз данных Exchange могут быть рассинхронизированы. Об этом мы узнали, когда место на рабочем сервере оказалось почти полностью съедено логами. К счастью, о нехватке места мы были предупреждены заббиксом, но встал вопрос о мониторинге состояния баз.

В этом посте я расскажу как решил задачу, а также постараюсь доступно рассказать как работает Zabbix Low Level Discovery (LLD), так как интернет не особо пестрит примерами самостоятельных решений для этого функционала заббикса.

2015-11-26

Конвертирование объектов PowerShell 2 в JSON

В инете распространены скрипты для PowerShell 2, использующие фреймворк. Однако этот способ у меня не заработал  - выдавал ошибки типа "Invalid JSON primitive: Microsoft.Exchange.Management.SystemConfigurationTasks.DatabaseCopyStatusEntry."

Для таких страдальцев как я, нашелся отличный работающий скрипт конвертации: https://gist.github.com/mdnmdn/6936714

Скачать архивом (актуальность на момент поста): ConvertTo-JSON.zip

2015-11-19

[решено] Падение производительности Veeam Backup на больших серверах

Долгое время не мог понять, почему Veeam Backup & Replication (6.5 на Win2008/R2) постепенно теряет производительность при бэкапе больших (>2TB) виртуальных машин. Скорость копирования падала с >100MB/c на старте задания до 1-2 MB спустя несколько часов.
Оказалось, дело в неправильной работе дискового кэша в Win 2008/R2 (говорят, в 2012м сервере это поправили, но я не проверял) - он раздувается до неприличных объемов и все начинает тупить и тормозить вплоть до остановки задания.
Для решения этой проблемы я использовал утилиту cacheset от Марка Руссиновича. Она позволяет выставить минимальный и максимальный размеры кэша, при этом раздутый кэш сдувается до установленных лимитов. Однако, как выяснилось, эти лимиты через какое-то время снова сбрасываются, поэтому данную утилиту я запихал в шедулер:

c:\bin\cacheset 1024 100000
где 1024 - минимальный размер кэша в KB, 100000 - максимальный.

Запуск этой команды раз в час обеспечил решение проблемы.

Скачать: с офиц. сайта, отсюда

2015-09-19

Настройка многомониторной конфигурации с выводом звука на ТВ/ресивер

Сегодня опишу свою конфигурацию игрового компа, а вернее - схему подключения с тремя мониторами и двумя звуковыми картами.

2015-07-17

Как убить процесс по имени в винде

С помощью powershell - легко и просто:

Get-Process -Name имя_процесса | Stop-Process -force

имя_процесса - может содержать маску,
-force - предотвращает появление диалога с подтверждением

2015-06-27

EncFSMP: монтирование EncFS под windows

Это просто праздник какой-то! Кого-то достала невозможность использования EncFS (виртуальная файловая система с шифрованием данных) под виндой и появилась софтина, свободная как птица и РАБОЧАЯ, МАТЬ ЕЕ!!! Качать тут: EncFSMP

2015-06-03

Как скопировать файлы с атрибутами безопасности в Windows

Для того чтобы скопировать файлы со всеми NTFS-атрибутами (при миграции файлсервера, например), можно воспользоваться утилитой robocopy, входящей в Windows 2003 Resource Kit Tools (входит в состав w2k8_R2) Примеры использования:

robocopy C:\folder D:\folder /COPYALL /E /R:1000000000

Или

robocopy \\server\share C:\folder /COPYALL /E /R:1000000000 /Z

/COPYALL - копировать все атрибуты
/E - рекурсивно
/R:1000000000 - миллион повторных попыток копирования для заблокированных файлов (значение по умолчанию, используется при неуказании ключа). После каждой попытки таймаут 30 секунд!
/Z - использовать журнал возобновления на случай потери сетевого соединения 

Справка по синтаксису: PDF, MSDN.


2015-05-25

blogger.сom ч.2: как изменить стиль картинок?

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

Посмотрим как выглядят картинки, вставленные в мой основной блог.


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

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

Откроем пост с картинкой. Если вы юзаете хром, то достаточно тыкнуть правой мышкой на картинку и выбрать "просмотр кода элемента", чтобы открыть такое окно (кликабельно):



Из полезного мы видим в первую очередь набор применяемых стилей справа. Из критичного в данном случае - padding и box-shadow, которые реализуют белую рамку и эффект тени. Эти стили нужно переназначить. Второе полезное - кусочек  width="289" в самом коде страницы. Это ширина, которая устанавливается при выборе средней ширины картинки при ее вставке. Скажу что для большого размера эта ширина равна 640, и именно ее я менял.

Собственно теперь мой стиль:


.post-body img[width="640"] {
  padding: 0px!important;
  box-shadow: 0px 0px 0px rgba(0, 0, 0, .5)!important;
  width: 710px!important;
  height: auto!important;
  position: relative;
  left: -34px;
}

Поясню. Первая строка обозначает элемент который мы будем менять - это тег с классом "post_body" (его можно увидеть при исследовании стилей) и содержащий атрибут width="640". То есть все стили, которые мы будем применять, будут распространяться только на картинки, для которых в редакторе, при вставке, мы выберем большой размер. 
(Фактически мы таким образом можем задать аж 3 абсолютно разных стиля, "забиндив" их на 3 "пресетовых" размера.)

Дальше  мы меняем свойство padding - убирая внешние отступы от картинки и с ними - белую рамку.
Еще дальше мы убираем тень (box-shadow), выставляя ее значения в нули.
Параметр width - ширина, которая равна ширине моей колонки.
height: auto - высота устанавливается автоматически, так чтобы картинка не меняя пропорций.
position: relative - выставляем относительное позиционирование.... тут я приторможу и поясню...

Штука в том, что если посмотреть на мой бложик, на его центральную колонку, в котором расположены посты, то можно увидеть, что текст не прилегает вплотную к краям этой области. Иными словами для центральной области задан отступ, и если просто взять картинку, отключить ее отступы и выставить ширину равную ширине "постовой"! области блога, то картинка "съедет" вправо на ширину общего отступа колонки. Конечно можно убрать этот отступ вовсе, но тогда левый край текста будет также прилегать к границе колонки, что будет выглядеть убого. Поэтому для картинок и только для них нужно задать относительное смещение, и первый шаг для этого - параметр position: relative. А дальше добавляем...

left: -34px - методом проб и ошибок выясненное значение, при котором картинка ширины бложика ложится ровно по краям колонки.

Замечу, что в стиле я добавляю параметр !important, чтобы стиль перекрыл дефолтно заданные значения (вроде это необходимо только для параметров ширины и высоты, но другим параметров от этого дополнения хуже не будет)

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

2015-05-23

blogger.com ч.1: меняем оформление цитат

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

Переходим в настройки блога, выбираем "шаблон" и тыкаем кнопку "настроить":



Дальше "Дополнительно" и "добавить CSS":



Добавляем в окно вот этот текст:

.tr_bq {
  border-left: 4px solid #2288bb;
  margin: 1.5em 10px;
  padding: 0.5em 10px;
  quotes: "\201C""\201D""\2018""\2019";
}
.tr_bq:before {
  color: #2288bb;
  content: open-quote;
  font-size: 4em;
  line-height: 0.1em;
  margin-right: 0.25em;
  vertical-align: -0.4em;
}

.tr_bq:after {
  color: #2288bb;
  content: close-quote;
  font-size: 4em;
  line-height: 0.1em;
  margin-left: 0.25em;
  vertical-align: -0.4em;
}


Можно поиграться с цветом:
- строчка "border-left: 4px solid #2288bb;" - это левая полоска, ее толщина, стиль и цвет
- строчки "color: #2288bb;" в последующих двух разделах - это цвета открывающих и закрывающих кавычек, их лучше менять вместе =)

2015-05-07

Как вернуть Brocade FC Switch в фабрику

Чтобы вернуть в фабрику свич, который был долго выключен и не захотел подсосаться обратно, нужно залезть на него через telnet или ssh и выполнить:

switchdisable

cfgdisable

cfgclear

cfgsave

configdefault

fastboot

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

Выполнять на свой страх и риск, убедитесь в наличии бэкапа конфига! =)

2015-04-11

Как отключить срабатывание нажатия Alt без удержания

Иными словами меня запарило так называемое Alt-меню. А именно ситуация, когда прожимается Alt+Shift, набирается текст и ВДРУГ выясняется, что комбинация-то и не сработала. При этом нажатый и отпущенный уже альт все равно вызвал меню, и гора текста, напечатанная после, сработала как хоткеи, и текущий софт навыполнял кучу бессмысленных и беспощадных операций. 

Короче избавиться от этой веселухи можно с помощью программы AutoHotkey, которая вообще некислый комбаин по настройке хоткеев, но чтобы справиться с конкретной проблемой нужно после установки этой софтинки создать файлик "Autohotkey.ahk", написать в нем строчку 

~LAlt Up:: return

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

2015-04-03

Что мешает Windows уснуть? Как посмотреть что мешает спящему режиму

Консоль с повышенными правами, в нее:
powercfg /requests
Тайна раскрыта, остается разуметь вывод. В моем случае в демонтулзе был зацеплен исошник с сетевой шары. 

2015-03-30

Как отключить форматирование текста в Skype

Как известно, скайп использует замену текста, обрамленного, например, звездочками. Если обрамить что-то звездочками *вот так*, то на выходе получится полужирное вот так. Чтобы отключить эту функцию, достаточно в любой чат написать команду:

/setupkey *Lib/Conversation/EnableWiki 0

Скайп на нее скажет:

setupkey: [*Lib/Conversation/EnableWiki] now '0'

Больше эта фигня не потревожит =)

2015-03-03

Симлинки: Возвращение. Синхронизация сейвов игр между компами

В своем старом посте, посвященном вопросу переноса музыки на андроидных девайсах, я уже упоминал симлинки. Теперь появился повод рассказать как с их помощью я синхронизирую сейвы игр (на самом деле не только их) между несколькими компами, причем между компами с разными операционками. Рассказывать и показывать буду на примере Baldur's Gate Enhanced Edition (далее BG:EE) - эта игра хоть и стимовская, но не подерживает Steam Cloud, так что пример вышел более чем жизненный.

2015-02-02

Работа с историей скайпа

Давно искал утилиту для работы с историей скайпа и вот нашел. Называется Skyperious. Графическая, удобная, под винду и линух, умеет объединять несколько баз данных скайпа в одно целое - в общем збс софтина. Без регистрации и смс =) Выкладываю архив версии от  2014-05-08, чисто на всякий случай.