нужна помощь в модернизации скрипта
Добавлено: 2010-11-07 20:02:31
Всем доброго времени суток )Итак имеем скрипт на bash.Кстати мой первый написанный скрипт
Необходимо его немного улучшить в плане логирования хода выполнения скрипта.В общих чертах он делает следующее:
остнавливает сервер kannel копирует лог-файл bearer_box_access.log в котором очень нужная инфа в бэкап директорию а затем и на фтп и поднимает снова kannel server.
В него необходимо внести изменения которые добавят больше логирование по ходу выполнения.
И есть непонятный моментик.
ps ax|grep smsserver как вывод етой команды занести в какую то переменную с которой в последствии можно будет считать значение с помощью if?
остнавливает сервер kannel копирует лог-файл bearer_box_access.log в котором очень нужная инфа в бэкап директорию а затем и на фтп и поднимает снова kannel server.
В него необходимо внести изменения которые добавят больше логирование по ходу выполнения.
И есть непонятный моментик.
ps ax|grep smsserver как вывод етой команды занести в какую то переменную с которой в последствии можно будет считать значение с помощью if?
Код: Выделить всё
#!/bin/bash
DATE=`/bin/date +'%d%m%Y%H%M'`
BACKUP_BEAR=/tmp/backup_bear
LOG_DIR=/var/log
LOG_FILE=${LOG_DIR}/ftp.log
LOG_FILE_ERR=${LOG_DIR}/ftp_err.log
CP_LOG_FILE=BEARERBOX_ACCESS.log
TEMP_DIR=/tmp/bear
FILES_DIR=/KANNEL_LOGS
BACKUP_DIR=/export/home/ftpu/backup
MONTH=`date '+%Y/%m'`
SCRIPT_DIR=/var/log
SCRIPT_LOG=$SCRIPT_DIR/bearer_box_backup.log
USER=kannel_user
PASS=*************
#change directory to kannel logs
if [ ! -f ${SCRIPT_LOG} ]
then
touch $SCRIPT_LOG
echo `date '+%d-%m-%Y-%H:%M'` "bearer_box_backup.log was created">>$SCRIPT_LOG;
fi
cd /KANNEL_LOGS/
if [ $? -gt 0 ]
then echo `date '+%d-%m-%Y-%H:%M'` "directory /KANNEL_LOGS doesn't exists">>$SCRIPT_LOG;
exit
fi
#if file BEARERBOX_ACCESS.log then go further
if [ ! -f ${CP_LOG_FILE} ]
then
echo "No files to process">>$SCRIPT_LOG
exit
else
/etc/init.d/smsserver stop
if [ $? -gt 0 ]
then echo `date '+%d-%m-%Y-%H:%M'` "smsserver doesnt running or cannot be stopped exiting the sript">>$SCRIPT_LOG
exit
else
sleep 30
#copying bearerbox_access.log to the /tmp/bear and to the /tmp/backup_bear
cp ${CP_LOG_FILE} ${BACKUP_BEAR}/
mv ${BACKUP_BEAR}/${CP_LOG_FILE} ${DATE}.log
if [ $? -gt 0 ]
then echo `date '+%d-%m-%Y-%H:%M'` "Copy was failed!Exiting!!">>$SCRIPT_LOG
exit
else
cp ${CP_LOG_FILE} ${TEMP_DIR}/
if [ $? -gt 0 ]
then echo `date '+%d-%m-%Y-%H:%M'` "Directory /tmp/bear doesn't exists">>$SCRIPT_LOG
exit
else
/etc/init.d/smsserver start
if [ $? -gt 0 ]
then echo `date '+%d-%m-%Y-%H:%M'` "WARNING!!!smsserver doesn't starting!">>$SCRIPT_LOG
exit
else
/bin/rm -r ${CP_LOG_FILE}
cd ${TEMP_DIR}/
mv ${CP_LOG_FILE} ${DATE}.log
fi
fi
fi
fi
fi
if [ ! -d ${BACKUP_DIR}/OUT/$MONTH ]
then
mkdir -p ${BACKUP_DIR}/OUT/$MONTH
cp ${TEMP_DIR}/* ${BACKUP_DIR}/OUT/$MONTH
if [ $? -gt 0 ]
then echo `date '+%d-%m-%Y-%H:%M'` "There was no directory with such month.It was ceated and BEARER_ACCESS.log was copied to it">>$SCRIPT_LOG
else
cp ${TEMP_DIR}/* ${BACKUP_DIR}/OUT/$MONTH
if [ $? -eq 0 ]
then echo `date '+%d-%m-%Y-%H:%M'` "Directory existed and files were copied into it">>$SCRIPT_LOG
exit
fi
fi
fi
##wtf??
if [ -d ${LOG_FILE_ERR} ]
then
rm -f ${LOG_FILE_ERR}
fi
if [ -f ${LOG_FILE_ERR} ]
then
rm -f ${LOG_FILE_ERR}
fi
#mv ${CP_LOG_FILE} ${DATE}.log
echo "Copying files (FTP) `date`">>$SCRIPT_LOG
ftp -inv xxx.xxx.xxx.147<<EOF >>${LOG_FILE} 2>${LOG_FILE_ERR}
user $USER $PASS
bin
lcd ${TEMP_DIR}
mput *
EOF
if [ -s $LOG_FILE_ERR ]
then
echo "You have error in ftp transfer!Please check /var/log/bearer_box_backup.log !!!">>$SCRIPT_LOG
exit 3
else
rm -rf ${TEMP_DIR}/*
echo "Files was succesfully copied">>$SCRIPT_LOG
fi