Скрипты для системных администраторов *NIX, Полезные скрипты для *NIX |
Здравствуйте Гость [ Вход | Регистрация ] | Форум в сети 6806-й день
Шановні користувачі! Запрошуємо вас до офіційного телеграм-канала 0day Community. Тут ви зможете поспілкуватися одне з одним та дізнатися про останні новини щодо роботи ресурса, поставити запитання до адміністрації, тощо. Перейти до телеграм-канала можна відсканувавши QR-код або натиснувши на посилання: @zeroday_ua |
Скрипты для системных администраторов *NIX, Полезные скрипты для *NIX |
Pilson |
Dec 24 2010, 16:59
Пост
#1
|
Репутация: 383 Selachimorpha Группа: Модеры Сообщений: 2 777 С нами с: 23-May 09 |
Предлагаю в этой теме делиться различными скриптами для маленьких и не очень нужд, для облегчения жизни себе, любимым
В основном для Bash, PERL, AWK, но также приветствуется и остальное. |
Pilson |
Sep 21 2012, 15:03
Пост
#21
|
Репутация: 383 Selachimorpha Группа: Модеры Сообщений: 2 777 С нами с: 23-May 09 |
|
baltazor |
Sep 21 2012, 16:58
Пост
#22
|
Благодарности: 26436 Репутация: 526 Смерть - это лишь начало Группа: Модеры Сообщений: 3 612 С нами с: 5-September 07 |
Хм, только если удалить файлы из source, в destination они не удаляются. через rsync можно синхронизировать рекурсивно: добавление новых файлов, удаление, обновление сущ. файлов А так, тут хорошо расписано: opennet Сообщение отредактировал baltazor - Sep 21 2012, 17:01 |
Navern |
Sep 21 2012, 22:54
Пост
#23
|
Репутация: 552 Aut vincere , aut mori Группа: Пользователи Сообщений: 2 861 С нами с: 10-October 06 |
Простенький скрипт бэкапа с отправкой на почту
» Нажмите, чтобы показать спойлер - нажмите опять, чтобы скрыть... « |
Pilson |
Sep 22 2012, 0:24
Пост
#24
|
Репутация: 383 Selachimorpha Группа: Модеры Сообщений: 2 777 С нами с: 23-May 09 |
Простенький скрипт бэкапа с отправкой на почту Ну раз на то пошло - вот непростенький Есть два конфига: 1. sys_backup.conf по одному архиву в одну строку имя архива, директория, кол-во хранимых бекапов, опции (nocompress или encrypt). Можно комментировать строки. Пример: » Нажмите, чтобы показать спойлер - нажмите опять, чтобы скрыть... « 2. exclude.conf содержит список всего что НЕ надо архивировать (исключения). по одному файлу или вайлдкарду в строке Пример: » Нажмите, чтобы показать спойлер - нажмите опять, чтобы скрыть... « Если директория - это например уже сжатые архивы, и их нужно просто перенести на бекап сервер - то используется параметр nocompress. Тогда скрипт просто копирует директорию на бекап сервер в таком виде в каком она есть. Если боитесь что по дороге до сервера трафик могут перехватить - ставите параметр encrypt. Используется асинхронное шифрование с помощью gpg через публичный ключ. Расшифровка только через приватный ключ. На данный момент реализовано использование либо шифрования, либо простого переноса директории. В будущем будет вдохновение или необходимость на работе - буду думать как использовать оба параметра одновременно. Внутри скрипта указывается путь к рабочей директории, куда будут складываться бекапы, путь к конфигам, имя gpg ключа, URL бекап сервера (используется rsync), файл с паролем для бекап сервера (дабы не светить пароль в списке процессов). Также скрипт умеет дампить mysql (можно отключить - on|off) каждую базу в отдельный файл, архивировать его на лету и шифровать, и лишь конечный результат уже пишется на диск. Т.е. перехватить промежуточный результат не получится. Пароль от mysql также не светится в списке процессов. Он сохранен в конфиге mysql сервера, и на конфиг выставляются владелец root:root и права 600, дабы никто кроме рута не имел к нему доступ. пример: » Нажмите, чтобы показать спойлер - нажмите опять, чтобы скрыть... « Также скрипт устанавливает на свою рабочую директорию пользователя root:root и права 600, дабы никто кроме рута не мог туда добраться. Некоторые моменты внутри мне очень не нравятся - хочется, можно и нужно сделать элегантней, но пока лениво, да и особо некогда. Скрипт нужно запускаь от рута, и, например, через крон. Теперь, собственно - сам скрипт: » Нажмите, чтобы показать спойлер - нажмите опять, чтобы скрыть... « Как создавать связку ключей - приватный и публичный - я тут не описывал. Также не описывал как сконфигурировать на сервере и запустить rsync в режиме демона. Идеи по функционалу приветствуются Сообщение отредактировал Pilson - Jan 25 2013, 23:15 |
tischenkov |
Nov 21 2012, 20:25
Пост
#25
|
Репутация: 236 Cтаршой Группа: Пользователи Сообщений: 571 С нами с: 3-May 11 |
Доброго дня.
Есть написанный скрипт для копирования информации с сайта и сохранения в файл .txt. в данном случае это копирование улиц киева. с сайта http://sezamka.kiev.ua/streets.htm Написанный скрипт не переходит на следующую страницу. Пожалуйста, подскажите, как правильно сделать. за ранее благодарен. for count in seq 1 50; do links -dump "http://sezamka.kiev.ua/streets$count.htm" | grep район -A50 | tail -n10 >> addresses.txt; sleep 3;done |
olexande |
Nov 23 2012, 10:28
Пост
#26
|
Репутация: 132 Старожил Группа: Пользователи Сообщений: 2 042 С нами с: 27-February 07 |
Попробуйте добиться в ручном режиме "грабинга" любой 1 отдельной страницы.
Потом уже сможете запускать скрипт в цикле, обходя все страницы по очереди. |
$w@mp |
Dec 20 2012, 19:50
Пост
#27
|
Репутация: 35 Активист Группа: Пользователи Сообщений: 201 С нами с: 16-October 07 |
Добрый день, кто подскажет - нужен скрипт, который будет запускатся кроном, скрипт должен пингануть какой-нибудь адрес в инете, и при отсутствии связи - ребутнуть роутер - к роутеру доступ есть по телнету
но линукс неполноценный - а бузибокс на арм-е, так что набор пакетов там ограничен - лучше всего стандартными пакетами обойтись. Машина, на которой выполняется скрипт и роутер - разные устройства . До роутера можно достучатся только по телнету. Сообщение отредактировал $w@mp - Dec 20 2012, 20:21 |
baltazor |
Dec 20 2012, 20:00
Пост
#28
|
Благодарности: 26436 Репутация: 526 Смерть - это лишь начало Группа: Модеры Сообщений: 3 612 С нами с: 5-September 07 |
Что то типа:
ping -c2 x.x.x.x >/dev/null if [ $? -eq 0 ]; then echo "ok" else /sbin/reboot fi Сообщение отредактировал baltazor - Dec 20 2012, 20:00 |
$w@mp |
Dec 20 2012, 20:22
Пост
#29
|
Репутация: 35 Активист Группа: Пользователи Сообщений: 201 С нами с: 16-October 07 |
|
Sintorres |
Dec 20 2012, 20:26
Пост
#30
|
Благодарности: 1871 Репутация: 837 Старожил Группа: Модеры Сообщений: 3 673 С нами с: 20-March 06 |
|
$w@mp |
Dec 20 2012, 20:32
Пост
#31
|
Репутация: 35 Активист Группа: Пользователи Сообщений: 201 С нами с: 16-October 07 |
|
Sintorres |
Dec 20 2012, 20:45
Пост
#32
|
Благодарности: 1871 Репутация: 837 Старожил Группа: Модеры Сообщений: 3 673 С нами с: 20-March 06 |
#!/usr/bin/expect spawn $env(SHELL) send -- "telnet 192.168.1.1 23\r" expect -- "login" send -- "root\r" expect -- "Password: " send -- "Admin\r" expect -- "#" send -- "kill -1 `cat /var/run/ppp0.pid`\r" expect -- "#" нарыл тут _ttp://www.beta.acorp.ru/forum/viewtopic.php?t=2123&postdays=0&postorder=asc&start=15 тут еще глянь. http://forum.dlink.ru/viewtopic.php?f=6&t=139290 ПС у меня для виндов есть приблуда, которая пингует и ребутит adsl модем Сообщение отредактировал Sintorres - Dec 20 2012, 20:48 |
Sintorres |
Dec 20 2012, 21:01
Пост
#33
|
Благодарности: 1871 Репутация: 837 Старожил Группа: Модеры Сообщений: 3 673 С нами с: 20-March 06 |
наверное ЭТО оно
|
$w@mp |
Dec 20 2012, 21:31
Пост
#34
|
Репутация: 35 Активист Группа: Пользователи Сообщений: 201 С нами с: 16-October 07 |
Спасибо за помощь - все работает
|
nerve |
Feb 1 2013, 12:10
Пост
#35
|
Репутация: 282 Постоялец Группа: Пользователи Сообщений: 1 753 С нами с: 5-January 07 |
как в одну строчку через пайп сделать svnadmin dump и tar так что бы сразу создавался архив дампа?
|
Sera |
Feb 13 2013, 20:28
Пост
#36
|
Благодарности: 105 Репутация: 78 Дух Группа: Пользователи Сообщений: 189 С нами с: 17-March 06 |
Возможно немного с опозданием, но все таки отвечу на вопрос. Есть вот такие варианты решений:
svnadmin dump /var/lib/svn/repositories/repo_name | split -b 700m - .dump.tar.gz где split -b 700m выпонит нарезку архивов размером по 700Мб cat dump.tar.gz* | svnadmin load /var/lib/svn/repositories/repo_name Вариант с gzip: svnadmin dump /var/lib/svn/repositories/repo_name | gzip -9 > dump.gz gunzip -c dump.gz | svnadmin load /var/lib/svn/repositories/repo_name |
nerve |
Feb 14 2013, 9:40
Пост
#37
|
Репутация: 282 Постоялец Группа: Пользователи Сообщений: 1 753 С нами с: 5-January 07 |
да, с gzip вариант рабочий, а вот с первым я таки не понял
|
chagarna |
Feb 21 2013, 0:16
Пост
#38
|
Репутация: 18 Cтаршой Группа: Пользователи Сообщений: 840 С нами с: 22-January 13 |
просьба помочь написать скриптик, последовательность такая:
1) монтируется винт с ext4 2) проходит 1 минута 3) создается папка например 19.03.2013 и в ней подпапки, например 1, 2, 3 и тд 4) с определённых папок копируются данные в эти папки 1 2 3 и тд 5) после окончания копирования проходит 1 минута 6) размонтируется винт убунта сервак решил таким способом бекапить только тапками не кидайтесь, пытаюсь сам разобратся, но только пытаюсь.. |
nerve |
Mar 7 2013, 17:17
Пост
#39
|
Репутация: 282 Постоялец Группа: Пользователи Сообщений: 1 753 С нами с: 5-January 07 |
Идеи по функционалу приветствуются не совсем в тему, но проблема такая: 1) работает, отправляет NOW=`date +%d%m%y` mysqldump -u root -p123 db > /root/backup/db.dump tar czf /root/db$NOW.tar.gz -C /root/backup db.dump mutt -s "mysql db for $NOW" -a /root/db$NOW.tar.gz -- [email protected] < /root/text.txt 2) работает, отправляет, но gmail не принимает NOW=`date +%d-%m-%y` rm -rf /root/backup/*.tar.gz.* tar cz /etc/mail \ /etc/cron.d /etc/rc.d/init.d /etc/unicorn /etc/yum.repos.d \ /etc/httpd /etc/nginx /etc/sysconfig /etc/ssh \ /etc/fstab /etc/hosts ... | split -d -b 15M - /root/backup/host-$NOW.tar.gz. mutt -s "host for $NOW part 1" -a /root/backup/host-$NOW.tar.gz.00 -- [email protected] < /root/text.txt mutt -s "host for $NOW part 2" -a /root/backup/host-$NOW.tar.gz.01 -- [email protected] < /root/text.txt 2)если делать тоже самое с гзипом - то gmail принимает, но гзип следует по симлинкам в директориях, а это не подходит gzip -cr /etc/mail \ /etc/cron.d /etc/rc.d/init.d /etc/unicorn /etc/yum.repos.d \ /etc/httpd /etc/nginx /etc/sysconfig /etc/ssh \ /etc/fstab /etc/hosts ... | split -d -b 15M - /root/backup/host-$NOW.gz. mutt -s "host for $NOW part 1" -a /root/backup/host-$NOW.gz.00 -- [email protected] < /root/text.txt не пойму, что ему не нравится в tar.gz разбитом сплитом.. хелп! Сообщение отредактировал nerve - Mar 7 2013, 17:22 |
loky12 |
Mar 9 2013, 16:57
Пост
#40
|
Репутация: 57 Активист Группа: Пользователи Сообщений: 251 С нами с: 19-June 07 |
|
Упрощённая версия | Сейчас: 1st November 2024 - 22:44 |
Сайт не розміщує електронні версії творів, а займається лише колекціонуванням та каталогізацією посилань, що публікуються нашими користувачами. Якщо Ви є правовласником якоїсь частини опублікованого матеріалу та не бажаєте, щоб посилання на нього знаходилось в нашому каталозі, зв’яжіться з нами і ми видалимо його. Файли для обміну надані користувачами сайту і адміністрація не несе відповідальності за їх вміст. |