Системное администрирование → Обновление ДубльГИС консольными средствами Linux
Введение

Очень часто пользователи просят установить ДубльГИС (не сочтите за рекламу) справочник, особенно если пользователь ездит в командировки, общается с людьми из других городов.
И как у любого системного администратора у меня возникла идея автоматически и централизованно обновлять ДубльГИС для всех городов.
По ряду причин решено было сделать это средствами Linux.
Одной из причин являлось отсутствия решения для централизованного обновления под данную операционную систему.
Еще одной — отсутствие файла на сайте со всеми базами и оболочкой в одном архиве для пользователей Linux.
В данной статье я расскажу как можно обновить ДубльГИС для всех городов, консольными средствами Linux.
Системное администрирование → Скрипт резервного копирования через rsync
Возникла необходимость как-то и куда-то бэкапится. Причём чтобы процессоры не грузились и место не занималось, а бэкапы ротэйтились и удобно доставались. Раньше всегда пользовался fsbackup, но захотелось отказаться от архивирования. Для решения задачи была использована rsync и механизм жёстких ссылок (так называемых хардлинков) файловой системы.
Архитектура: есть отдельно стоящий сервер с большим винтом — на нём и работает скрипт. Есть много разных серверов с доступом по ssh, на которых в ~/.ssh/authorized_keys добавлен публичный ключ пользователя, под которым работает скрипт резервного копирования.
Архитектура: есть отдельно стоящий сервер с большим винтом — на нём и работает скрипт. Есть много разных серверов с доступом по ssh, на которых в ~/.ssh/authorized_keys добавлен публичный ключ пользователя, под которым работает скрипт резервного копирования.
Восстановление данных → Экстремальное восстановление данных с деградировавшего 5го рейда из песочницы
Написано на реальных событиях.
Любое повторение действий и необдуманные решения могут привести к полной утрате данных. Не для HowTo-шников, данный материал лишь для воссоздания картины о представлении данных на дисковых носителях.
Итак, приступим. Вводные данные:
- 7 дисков, 2 primary-раздела на каждом;
- 1й раздел 7и кратное зеркалирование (RAID1);
- 2й раздел RAID5, под которым крутится LVM.
Два диска отказывают в одночасье из-за скачка электричества и каких-то еще проблем с железом. Попытки ассемблировать диски обратно не увенчались успехом, т.к. система проработала в автопилоте на умершем рейде часа два, в добавок ко всему диски то оживали то умирали заново, ядро не отрабатывало какой диск на каком месте в данный момент, т.е. что на них писалось и как это происходилос — можно только догадываться.
В общем, имеем, полностью погибший рейд. и mdadm тут бессилен.
Системное администрирование → Как узнать какие порты на коммутаторах уже не используются из песочницы
Чуть больше года назад столкнулся с проблемой, знакомой, наверное, каждому админу: в одном из коммуникационных шкафов закончились почти все свободные порты. Визуально было видно, что почти к каждому порту подключён кабель, свободных осталось только один-два порта, а требовалось подключить около десяти новых девайсов.
Мне было чётко ясно, что на самом деле используются не все порты: какие-то, скорее всего, подключали временно, а затем забыли отключить, сетевые принтеры могли переместить и подключить к другому коммутатору, часть портов были подключены для пользователей, за время сменивших свои кабинеты, и т.д.
Отключение неактивных портов было неприемлемо, так как то, что какой-то порт в данный момент не активен, не говорит о том, что он не использовался 10 минут назад, а пользователь просто отключил свой компьютер, и, скажем, уехал на встречу.
Мне было чётко ясно, что на самом деле используются не все порты: какие-то, скорее всего, подключали временно, а затем забыли отключить, сетевые принтеры могли переместить и подключить к другому коммутатору, часть портов были подключены для пользователей, за время сменивших свои кабинеты, и т.д.
Отключение неактивных портов было неприемлемо, так как то, что какой-то порт в данный момент не активен, не говорит о том, что он не использовался 10 минут назад, а пользователь просто отключил свой компьютер, и, скажем, уехал на встречу.
Персональные блоги → Автоматизация создания виртуального хоста для web-разработки на базе Apache+Nginx
Как быстро создать виртуальнй хост и структуру папок одной строкой в терминале
Так уж сложилось, что для web-разработки я использую отдельный сервер на базе Debian. В первую очередь это обусловлено тем, что я часто работаю вне дома, а так-же это позволяет совместно работать над проектом с коллегами.
Раньше мне приходилось вручную создавать директории для сайта, копировать и править конфиги. Я тратил на это кучу времени и иногда ошибался, а потом судорожно искал где и что я упуслил.
Не так давно я задумался над автоматизацией процесса создания виртуальных хостов. Порыв немного в интернетах, и заодно вспомнив bash, родился скрипт, который избавил меня от рутины и ошибок одновременно.
Linux для всех → Screen Shot script
Всем доброго времени!В один прекрасный момент меня достало:
- Нажимать PrintScreen
- Искать место куда же его сохранить
- Открывать сервис imageshack\radikal\хабр-эффект
- Искать на диске, куда же я сохранил все таки именно этот скриншот
- Копировать полученную ссылку, и делать с ней .....
Теперь я делаю:
- Нажимаю Ctrl+/
- Копирую полученную ссылку и делаю с ней .....
Неправдо ли лучше? И вас это тоже достало? Тогда лезем под кат!
Персональные блоги → Бэкап на linux
В один прекрасный день мне понадобился скрипт бэкапов. Рассматривал большое количество различных вариантов. Многие не устроили по причине громоздкости. В итоге я написал свой скрипт :)
Для бэкапа сайтов на веб-сервере — очень полезно и просто :) Пожелания по улучшению — приветствуются
Для бэкапа сайтов на веб-сервере — очень полезно и просто :) Пожелания по улучшению — приветствуются
Системное администрирование → Настройка IPv6 или IPv6 в массы

На Habrahabr уже существуют статьи по настройке IPv6, например тут и тут. и тут
Сам я рекомендую почитать rm.pp.ru, там примеры зачем это надо.
Я же решил сделать процесс поднятие туннеля более универсальным и автоматизированным…
Для этого я написал два простых скрипта, но ..., давайте по порядку.
Персональные блоги → в KDE 4 убрали kdict
в KDE4 убрали kdict, в связи с неактивностью автора.
плазмоид не совсем то, что хотелось бы.(да и не заработал он у меня). пришлось выкручиваться своими силами.
плодить лишние сущности не хотелось.
поэтому идем по unix-way(маленькие программки которые делают свое дело ну и пайпы естественно)
меня интересовала возможность быстро перевести слово для этого его достаточно выделить. и слово будет в буфере.
и по Meta+K вызывается вот такой вот скрипт:
простенько и со вкусом
xclip -f -o
выкидывает нам содержимое буфера обмена на stdout
kdialog умеет много разного
dict $TEXT собственно опрашивает dict сервер
а head -n 50 ограничивает количество строк в 50.
плазмоид не совсем то, что хотелось бы.(да и не заработал он у меня). пришлось выкручиваться своими силами.
плодить лишние сущности не хотелось.
поэтому идем по unix-way(маленькие программки которые делают свое дело ну и пайпы естественно)
меня интересовала возможность быстро перевести слово для этого его достаточно выделить. и слово будет в буфере.
и по Meta+K вызывается вот такой вот скрипт:
#!/bin/bash
TEXT=`xclip -f -o`
kdialog --passivepopup "`dict $TEXT|head -n 50`"простенько и со вкусом
xclip -f -o
выкидывает нам содержимое буфера обмена на stdout
kdialog умеет много разного
dict $TEXT собственно опрашивает dict сервер
а head -n 50 ограничивает количество строк в 50.
Linux для всех → Распараллеливание задач в Linux
Потребовалось мне перекодировать некоторое количество видео-файлов. Для этого я написал следующий сценарий:
Казалось-бы все готово, но я заметил, что загружен только один процессор из двух, а это значит, что этот процесс можно ускорить, раза в два.
#!/bin/bash
recode() {
mencoder -o $2 $1 -ovc x264 -x264encopts bitrate=22000:keyint=50 -oac mp3lame -lameopts vbr=3:br=320 -fps 50
}
recode input/00108.mts 00108.avi
recode input/00109.mts 00109.avi
...
...
Казалось-бы все готово, но я заметил, что загружен только один процессор из двух, а это значит, что этот процесс можно ускорить, раза в два.