"Скрипты на все случаи жизни"

Tue 25 February 2014

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

Сам фреймворк можно найти тут.

Как это работает

Для работы скрипта необходимо скопировать (или слинковать) файл конфигурации:

ln -s ${script_root}/usr/share/rc.conf.example ${script_root}/etc/rc.conf

После чего можно запустить скрипт без параметров:

$ bash ${script_root}/bin/wilshell.sh 
==[ Debug inf. ]==  
    2012-11-28_02-44 [LogLevel set 1] [Usage simple]
==[ Usage ]==   
    lock     ==> Module to lock the script
    cleaner  ==> The module for cleaning old files
    backup   ==> Backup files and directories
    mysql    ==> Create a backup of the database
    dumpsys  ==> Dump system state
    sender   ==> Module to send files to a remote server
    iptables     ==> Module to control iptables
    ldap     ==> The backup database server openldap
    rpmbuild     ==> RPM collector packages
    misc     ==> Other Features

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

ls -l ${script_root}/usr/modules

Для отображения списка параметров модуля достаточно запустить его без параметров, например:

$ bash ${script_root}/bin/wilshell.sh backup
==[ Debug inf. ]==  
    2012-11-28_02-48 [LogLevel set 1] [Usage simple]
==[ Usage ]==   
> -b  Путь к директории содержащей бэкапы [/tmp/backup]
> -d  Удалять бэкапы старше чем, указанное количество дней [3]
> -l  Список папок для бэкапа [fileset.conf]
> -c  Директория с файлсетами для бэкапа [../etc/fileset.d/]
> -r  Запустить бэкап
> -v  Режим отладки

Некоторые модули сейчас нуждаются в рефакторинге, некоторые еще не полностью дописаны, поскольку большое внимание уделялось самому "движку", бОльшая часть функционала которого описана в отдельной библиотеке.

By A. Semenov, Category: linux

Tags: help / howto / bash /

Comments

Яндекс.Метрика