простой и мощный бэкап на базе rsync
способы бэкапа
- do nothing
- надеяться на лучшее
- копировать на флэшку
почему так плохо
- дорого
- сложно
- смерть винчестера - миф!!!11oneone
- гарантирует отдел продаж Seagate
потеряли данные
- новая работа
- восстановление данных за $1999.99
- начинаем копировать
надоело ждать
- ищем способы синхронизации
- unison
- rsync
rsync
- быстро сравнивает две директории
- копирует изменившиеся части изменившихся файлов
- работает по сети, через ssh или собственный
протокол
старые версии файлов
- но на моей флэшке только последняя версия!
- бэкап изменений
- инкрементальный бэкап
duplicity и rdiff-backup
- основаны на rsync
- работают быстро, эффективно, надёжно
- сохраняют все изменения
duplicity - безопасно
- шифрует все данные GnuPG
- работает по любому протоколу
- ftp, ssh/scp/sftp, rsync, webdav(s), HSi, Amazon
S3, imap(s)
- может бэкапить на локальный диск/флэшку
duplicity - бесплатно
- сотрудников Google просим отвернуться
- есть gmail? - есть 7Gb места для бесплатного
бэкапа!
- нужно больше? - зарегистрируй ещё 10 аккаунтов!
duplicity - дёшево
- надоело нарушать правила?
- amazon s3 = ¢15 за 1Gb в месяц
- dreamhost = $120 за 50Gb в год
- неограниченный хостинг в подарок
- не забудьте про меня при регистрации
duplicity - легко
export PASSPHRASE="super secret passphrase"
duplicity full /home \
ssh://ballmer:god123@hq.msft.com/backup-dir/
duplicity incremental /home \
ssh://ballmer:god123@hq.msft.com/backup-dir/
duplicity - гибко
duplicity incremental \
--exclude '/usr/home/sat/Maildir/.spam*' \
--exclude '/usr/home/sat/Maildir/**/dovecot*' \
--exclude '/usr/home/sat/.mairixdb' \
--include '/usr/home/sat' \
--include '/root' \
--include '/etc' \
--include '/usr/local/etc' \
--include '/var/db/pkg' \
--include '/var/named' \
--exclude '**' / ftp://…
duplicity - восстановление
- любые файлы и папки
- на любое время назад
- предварительный просмотр изменившихся файлов
duplicity - надёжно
- дешевизна позволяет легко дублировать бекап
- подписи gpg предотвратят порчу данных
rdiff-backup - декременты
- инкременты назад во времени
- постоянный полный бекап
- прямая доступность последней версии
- уникальная компактность
rdiff-backup - мощно
- поддерживает acl, extattr, carbon
- работает локально или через ssh
- но сам бекап незашифрован
- на удалённом хосте потребуется rdiff-backup
rsyncrypto
- шифрует файлы специальным образом
- подходит для использования вместе с rsync и
rdiff-backup
monit
простой мониторинг
Задача
- Следить за состоянием процессов
- Поднимать упавшие
- Опускать сбоящие
- Перезапускать зависшие
Задача
- Предпринимать любые действия по гибко заданным
событиям
- Уведомлять администраторов и вести журналы
Решение
- Nagios?
- Zabbix?
- OpenView?
- Дорого и сложно
Решение
- djb daemontools?
- Apple launchd?
- Sun SMF?
- Ubuntu Upstart?
- Непортируемо и напутано
monit
- Это один (1) небольшой процесс
- Это один (1) конфиг-файл
- Полноценный мониторинг
- Настраиваемые уведомления по SMTP
- Автоматическое восстановление сервисов
- Удобный доступ из консоли
- Встроенный веб-интерфейс
- Журналирование в syslog или отдельный log-файл
Мониторинг
- процессы и сервисы
- файлы
- папки
- устройства
- удалённые сервисы
- состояние системы
Процессы
- Существование, по pid-файлу
- Изменения PID
- Изменения PPID
- Количество потомков
- Загрузка процессора (с потомками)
- Загрузка памяти (с потомками и без)
Процессы
if 2 restarts within 3 cycles then timeout
if totalmem > 100 Mb then alert
if children > 255 for 5 cycles then stop
if cpu usage > 95% for 3 cycles then restart
Сервисы
- Удалённые и локальные
- Проверка по протоколам
- http, ftp, imap, mysql, pgsql, smtp, ntp, pop,
dns, ssh, …
- Поддержка SSL/TLS с проверкой подписи
- https, ftps, imaps, pops, …
- UDP, TCP, ICMP, Unix domain sockets
- Произвольно заданный текстовый протокол
Сервисы
if failed url
http://bill:1337@msft.com:81/?query
and content == 'my.*regex' then alert
if failed icmp type echo count 5
with timeout 15 seconds
then alert
if failed port 80 proto http then alert
if failed port 443 type TCPSSL proto http
then alert
if failed host cave.persia.ir port 4040
send "Open, Sesame!\r\n"
expect "Please enter the cave\r\n"
then restart
Файлы и папки
- Контрольная сумма md5 или sha1
- Время изменения (mtime)
- Размер
- Содержимое (regex)
- Флаги
- Разрешения
- Пользователь, группа
Файлы и папки
if changed checksum then exec "echo 123"
if failed checksum and
expect the sum 8f7f419955cefa0b33a2ba316cba3659
then alert
if changed timestamp then exec 'apache.sh restart'
if size > 50 MB then exec 'logrotate'
if match 'Houston, we have a problem' then alert
check file su with path /bin/su
if changed size then exec "ifconfig fxp0 down"
Файловые системы
- Свободное место
- Использование inode-ов
Файловые системы
check device rootfs with path /dev/hda1
if space usage > 80% 5 times within 15 cycles
then alert
else if passed for 10 cycles then alert
if space usage > 90% for 5 cycles then
exec '/try/to/free/the/space'
if space usage > 99% then exec 'kill -9 1'
Удалённые файлы
- Доступ по HTTP
- Проверка контрольной суммы md5 или sha1
if failed port 80 protocol http
and request "/page.html"
with checksum 350d6c0157a04c84012475bd87609db4
then alert
Система
- Средняя загрузка за 1, 5, 15 минут
- Загрузка процессора
- Загрузка памяти
Система
if loadavg (1min) > 4 then alert
if loadavg (5min) > 2 then alert
if memory usage > 75% then alert
if cpu usage (user) > 70% then alert
if cpu usage (system) > 30% then alert
if cpu usage (wait) > 20% then alert
Действия
- уведомление
- запуск, остановка, перезапуск
- исполнение любого скрипта или программы
- под любыми пользователем и группой
- включение, выключение мониторинга
Действия
then alert
then stop
then restart
then exec 'true' as uid 1 gid 1
then unmonitor
Уведомления
- полностью настраиваемый формат
- легко автоматически обрабатывать
- буфер любого размера на случай временного отказа
почты
CLI-интерфейс
monit summary
The monit daemon 4.10.1 uptime: 10h 53m
Process 'vpnc' running
System 'pollux.cenkes.org' running
monit status
monit reload
monit validate
monit restart apache
monit restart all
Веб-интерфейс
- Полный аналог текстового
- Совместим с текстовыми браузерами
Недостатки
- Однотредовый, синхронный
- Нет произвольных проверок (скриптами)
- Плохо расширяем
- Не рассчитан near-realtime проверки
Преимущества
- Предельная простота
- Быстрый и маленький процесс
- Чаще удобней запустить monit, чем написать
костыль
Рабочая среда *nix-админа
Дисклеймер
- это лишь пример
- неудачный гибрид микроскопа и молотка
- неудобный, неуклюжий
- постоянно меняющийся
- мощный и практичный для узкого круга людей
немного скриншотов
браузер
консоль
удалённые консоли
mutt
w3m
vim
mplayer
sonata
gimp
Идеология
- KISS - просто и тупо
- ничего лишнего
- всё под рукой
- внимание - золото
Простота
- одно окно на экране
- одна задача в окне
- два глаза на задаче
Ничего лишнего
- часы
- тулбары, таскбары
- погода на 10 дней вперёд
- показания 57 основных датчиков компьютера
Атомы внимания
- пиксели экрана
- многотредовое мышление
- скорость перевода взгляда
Глаза
- поле зрения
- размер шрифта
- размер терминала
Мышь
- полезный инструмент
- Counter-Strike, WoW, MS Windows
- опасный инструмент
- отнимает время, связывает руки, снижает iq
Клавиатура
- ~100 клавиш
- ~10000 сочетаний из двух
- ~1000000 сочетаний из трёх
Ограничения
- в каждом из них есть преимущества
Попробуйте
- неделю без мышки
- неделю без автоповтора
- неделю без графики
-
неделю без компьютера
Реализация
- простой оконный менеджер - dwm
- мультиплексор консоли - screen
- демаразматор браузера - vimperator
- лучший шелл в мире -
PowerShell zsh
- больное воображение
dwm
- автопривязка окон к виртуальным рабочим столам
- управление с клавиатуры
- Caps+1 - консоль
- Caps+2 - браузер
- Caps+3 - кино
screen
- мобильный компутинг
- опять размер терминала
- ssh в новом окне по умолчанию
- горячие клавиши: больше - лучше
- Alt+1 - почта
- Alt+2 - локальный шелл
- Shift+Alt+9 - шелл на FreeBSD.org
screen²
- удалённые мультиплексированные консоли
- безполезненные дисконнекты
- Ctrl+R - удалённый эскейпинг
x11
- xmodmap - перестановка клавиш
- xbindkeys - подогрев клавиш
- xset, xrdb, xte, … - прочие трюки
- Win+r - русская раскладка
- Win+e - English
- Win+j - カタカナ
- Win+a - العربية
- Multi_key - композитные знаки - ☭…½㉒¢₇«»
mutt
- почта по-человечески
- но медленный IMAP
- ещё есть alpine
w3m
- отдых глазам
- легче редактировать
- Web 1.0 compatible
- элитно
vim
- лучший редактор для тех, кто не знает Lisp
- и для остальных
vimperator
- Firefox: укращение голыми руками
zsh
- не пытайтесь выучить man zshall
rxvt-unicode
- относится к xterm так же, как zsh к bash
-
так же, как FreeBSD к Linux, vim к emacs, pgsql к
mysql
- то есть просто лутьше
x2x
- одна клавиатура
- одна мышь
- много компутеров
- много экранов
- дзен