среда, 26 августа 2009 г.

Обработка файлов. Замена строк.

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


#!/bin/bash
# формируем путь к файлу конфигурации
cfgfile=$HOME/.ICAClient/appsrv.ini
msg="Обрабатываю $cfgfile"
# пишем коммент в консоль и лог
echo $msg
date >> ./log
echo $cfgfile >> ./log
# проверяем наличие резервной копии.
# если есть, выходим с сообщением ничего не меняя
# если нет, делаем резервную копию, пишем в лог
# меняем файл, снова в лог
if [ -f "$cfgfile.bak" ]
then
msg="Резервная копия уже создана. Вероятно это повторный запуск. Завершаем процедуру."
echo "$msg"
date >> ./log
echo $msg >> ./log
else
cat $cfgfile > $cfgfile.bak
date >> ./log
echo "----old----" >> ./log
cat $cfgfile >> ./log
echo "--end old--" >> ./log
sed -i -e 's/111.222.333.444/citrix.siriust.ru/ig' $cfgfile
date >> ./log
echo "----new----" >> ./log
cat $cfgfile >> ./log
echo "--end nes--" >> ./log
fi
echo "Готово! Не забудьте отправить файл log системным администраторам."
exit 0


Код далеко не идеальный, но задачу свою выполняет :-), Создает резервную копию файла конфигурации appsrv.ini и меняет адрес сервера с 111.222.333.444 на citrix.siriust.ru и пишет все операции в лог, куда еще и складывает оригинал и выходной файл. Этот лог отправляется админам по почте, что-бы у нас были копии конфигурационного файла.

Комментариев нет:

Отправить комментарий