Полезные скрипты для сисадмина

Аватар пользователя slavaz

Здесь постим свои наработки в области скриптов, облегчающие сисадмину жизнь.
Требования к скриптам и постам:
1) Скрипты должны быть сжаты gzip'ом и присоединены (приаттачены) к посту либо вынесены в сам пост посредством блока [ CODE ]. К каждому посту должно быть приаттачено(написано в посте) не более пяти скриптов, объединённых логически производимыми действиями.
2) В постах содержится подробное описание скриптов - для чего предназначены, что делают, какие входные параметры.
3) Очень желательно, чтобы скрипты были действительно полезными. echo 'hello, world' никого не интересует и такие посты будут безжалостно выкашиваться.
4) Флеймить здесь не надо. Посты, не попадающие под правила, будут удаляться.

Аватар пользователя slavaz

Re: Полезные скрипты для сисадмина

unpack_default_initrd_2.6.sh: Скрипт для распаковки initrd ядра, выставленного по умолчанию в /boot/grub/grub.conf или /etc/aspldr.conf.
Монтирование будет произведено в домашнем каталоге root'а в подкаталоге initrd_mount. Скрипт предназначен для ядер 2.6.*
Запускать из-под root'а
Дополнительные параметры: не требуются
Сжат gzip'м; в аттаче

pack_default_initrd_2.6.sh: Скрипт для создания в домашнем каталоге root'а initrd-образа для ядра, выставленного по умолчанию в /boot/grub/grub.conf или /etc/aspldr.conf, который потом можно скопировать в /boot.
Скрипт предназначен для ядер 2.6.*
Запускать из-под root'а
Дополнительные параметры: не требуются
Сжат gzip'м; в аттаче

ВложениеРазмер
unpack_default_initrd_2.6.sh.gz 574 байта
pack_default_initrd_2.6.sh.gz 598 байт
Аватар пользователя slavaz

Re: Полезные скрипты для сисадмина

unpack_default_initrd_2.4.sh: Скрипт для распаковки и подключения(монтирования) initrd ядра, выставленного по умолчанию в /etc/aspldr.conf.
Монтирование будет произведено в домашнем каталоге root'а в подкаталоге initrd_mount.
Запусакть из-под root'а
Скрипт предназначен для ядер 2.4.*
Дополнительные параметры: не требуются
Сжат gzip'м; в аттаче

pack_default_initrd_2.4.sh: Скрипт для создания в домашнем каталоге root'а initrd-образа для ядра, выставленного по умолчанию в /etc/aspldr.conf,
который потом можно скопировать в /boot. Отключает (отмонтирует) также каталоги, ранее подмонтированные скриптом unpack_default_initrd.sh
Запусакть из-под root'а
Скрипт предназначен для ядер 2.4.*
Дополнительные параметры: не требуются
Сжат gzip'м; в аттаче

ВложениеРазмер
unpack_default_initrd_2.4.sh.gz 511 байт
pack_default_initrd_2.4.sh.gz 631 байт
Аватар пользователя slavaz

Re: Полезные скрипты для сисадмина

Задача: "Обеспечить визуальное оповещение входящей корреспонденции" (с) военные Улыбка
Если нормальным языком: сделать а-ля thebat всплывающее окошко при приходе новой почты.
Существующие условия:
- ltsp-сервер (сервер бездисковых станций, много пользователей)
- qmail+vpopmail
Решение:
/usr/local/bin/new_mail.sh: Непосредственно скрипт "оповещения". Выводит xmessage при появлении новой почты у пользователя.
Прописывается в /etc/X11/xinit/Xclients в самое начало файла перед остальными командами так:
/usr/local/bin/new_mail.sh >/dev/null 2>&1 &
Настройки прописываются в домашнем каталоге каждого пользователя в файле .check_mail:
CHECK="yes"
INTERVAL="300"

где CHECK = проверять или нет почту
INTERVAL - с каким интервалом (в секундах) проверять почтовый ящик

и в самом скрипте настройки:
# если не указано в пользовательских настройках, проверять или нет почтовый ящик
DEFAULT_CHECK="yes"
# интервал проверки, в секундах
DEFAULT_SLEEP_TIME=300
# Сообщение при появлении новой почты
NEWMAIL_MESSAGE="Пришла новая почта."
# Где находится второй скрипт - helper, запускаемый с правами root'а
CHECK_MAIL_VPOPMAIL="/usr/local/sbin/check_mail_vpopmail.sh"
# название домена, в котором проверять почту
DOMAIN="yuor.domain.name.net"
# куда установлен vpopmail
VPOPMAIL_DIR="/var/qmail/vpopmail"

/usr/local/sbin/check_mail_vpopmail.sh: helper для первого скрипта. Запускается с правами root'а посредством sudo. Возвращает "yes" если есть почта для пользователя. Для работы скрипта необходимо в /etc/sudoers добавить строку:
ALL ALL=(ALL) NOPASSWD: /usr/local/sbin/check_mail_vpopmail.sh

ВложениеРазмер
check_mail_vpopmail.sh.gz 214 байт
new_mail.sh.gz 596 байт
Аватар пользователя slavaz

Re: Полезные скрипты для сисадмина

smb_mashine_account_add.sh: Добавление аккаунтов машин для самбы. В ASP10 нельзя добавить системного пользователя с символом $ в имени. Данный скрипт решает эту проблему.
Входные параметры:
smb_mashine_account_add.sh NAME
где NAME - название машины, которую надо присоединить к домену

ВложениеРазмер
smb_mashine_account_add.sh.gz 251 байт
Аватар пользователя slavaz

Re: Полезные скрипты для сисадмина

template1_clean.sh: PostgreSQL - очистка системной базы template1 от случайно созданных таблиц (бывает, что кто-то случайно дамп развернул не в определённую базу данных, а в template1)
Необходимые параметры задаются в самом скрипте:
# Имя или IP хоста, где СУБД
host="a.b.c.d"
# Пользователь с правами суперадмина
user="postgres"
# Название DB, в которой чистить таблицы
db="template1"

Недостатки: при запароленном входе спросит два раза пароль.

ВложениеРазмер
template1_clean.sh.gz 233 байта
Аватар пользователя slavaz

Re: Полезные скрипты для сисадмина

change_password.sh: Принудительная смена паролей пользователей через некоторое количество дней.
Параметры в самом скрипте:
# какой файл отслеживать (команды find, touch)
CHECK_FILE=$HOME/.bash_logout
# Через какой промежуток в днях спрашивать новый пароль
TIME_PERIOD=7

Скрипт скопируйте в /etc/profiles

Дополнительные данные: в /etc/pam.d/system-auth задаются параметры нового пароля для пользователей (минимальная длина, совпадение с crack_lib и т.д.). Более подробная информация: man pam_passwdqc

ВложениеРазмер
change_password.sh.gz 442 байта
Аватар пользователя slavaz

Re: Полезные скрипты для сисадмина

ASP10_PostInstall.sh: "дошлифовка" ASPLinux 10.0 после установки. А именно:
- Если есть звуковая карта, то она "размучивается" и выставляется уровень громкости в 95%
- Если установлен kppp, то позволяет запускать его без ввода пароля рута
- Отключает некоторые сервисы (бесполезные или полезные - кому как...).
- меняет таймаут бутлоадера на 5 сукунд

ВложениеРазмер
ASP10_PostInstall.sh.gz 992 байта
Аватар пользователя slavaz

Re: Полезные скрипты для сисадмина

make_flrepos.sh: - создаёт базу, содержащую список файлов, названий rpm-пакетов и путь к репозитарию пакетов.
Параметры в самом скрипте:
FLREPOS_DIR - рабочий каталог, где хранится база.
GZIP_LEVEL - степень сжатия базы после создания.
Использование: make_flrepos.sh <путь к репозитарию1> <путь к репозитарию2> <...>

find_flrepos.sh: Поиск в базе rpm-пакетов и репозитариев файла, печать местороложения файла (в каких rpm-пакетах, в каком репозитории)
Параметры в самом скрипте:
FLREPOS_DIR - рабочий каталог, где хранится база.
Использование: find_flrepos.sh <файл1> <файл2> <...>

ВложениеРазмер
find_flrepos.sh.gz 448 байт
make_flrepos.sh.gz 530 байт
Аватар пользователя slavaz

Re: Полезные скрипты для сисадмина

ltsp_print.sh: - реализация технологии "где пользователь сел - туда и печатает". Скрипт необходим для LTSP-серверов, когда на бездисковых машинах есть принтера.
Параметры скрипта: нет либо файлы для распечатки.
Дополнительные условия:
В файле /opt/ltsp/i386/etc/lts.conf в секцию описания бездисковой машины нужно добавить параметр:
DEFAULT_PRINTER - имя принтера для данной машины
например:
[term1]
RUNLEVEL = 4
USE_NFS_SWAP = N
DEFAULT_PRINTER = printer_on_term2

ВложениеРазмер
ltsp_print.sh.gz 698 байт
Аватар пользователя voland

Re: Полезные скрипты для сисадмина

Скрипт-тестирование rpm пакета. Выводит инфо о пакете в файл.

ВложениеРазмер
rpm-check.sh.tar.gz 743 байта
Аватар пользователя voland

Re: Полезные скрипты для сисадмина

Скрипт удаляет в /tmp файлы, не использовавшиеся в течение 3 дней.

ВложениеРазмер
cleantmp.sh.tar.gz 406 байт
RSS-материал