Привет всем!
Суть моей проблемы следующая: с горем пополам допилил скриты для автоматического бэкапа конфигов, один скрипт запускается по cron каждый день который запускает остальные скрипты
#!/bin/sh
BACKUP_HOST=127.0.0.1
BACKUP_USER=admin
BACKUP_DIR=/usr/local/sbin/backup/config
#SPOOL_DIR=/usr/local/sbin/backup/config
PATH=/bin:/usr/bin:/usr/sfw/bin:/usr/local/sbin/backup; export PATH
#umask 026
DAY=`date '+%d'`
#if [ ! -d $BACKUP_USER ]; then
# echo "Cannot find spool directory $BACKUP_USER."
# exit 0
#fi
#cd $SPOOL_DIR
#
# Backup configs from network devices
#
network_mks.sh
network_msk.sh
exit 0
на примере этот, собирает конфиги с оборудования и складываются в директорию /home/ftp/config/mks в папки по датам в формате 127.0.0.1.cfg
Показать
BACKUP_HOST=127.0.0.1
BACKUP_USER=admin
BACKUP_DIR=/home/ftp/config/mks
#SPOOL_DIR=/home/ftp/config/mks
PATH=/bin:/usr/bin:/usr/local/bin; export PATH
OBJECTS="`cat /usr/local/sbin/backup/dev_list_mks`"
umask 026
DAY=`date '+%d'`
MONTH=`date '+%m'`
mkdir /home/ftp/config/mks/$DAY.$MONTH
chmod 666 /home/ftp/config/mks/$DAY.$MONTH
if [ ! -d $BACKUP_DIR ]; then
echo "Cannot find spool directory $BACKUP_DIR."
exit 0
fi
#cd $SPOOL_DIR
cd $BACKUP_DIR
for OBJECT_IP in $OBJECTS; do
(
FILE1=$BACKUP_DIR/$DAY.$MONTH/$OBJECT_IP.cfg
/usr/local/sbin/backup/get_mks_cfg.tcl $OBJECT_IP | grep -v "show running-config" | grep -v " $>" > $FILE1 && \
#rcp $FILE1 $BACKUP_DIR/$DAY.$MONTH
chmod 666 $BACKUP_DIR/$DAY.$MONTH/$OBJECT_IP.cfg
) &
done
exit 0
и есть второй скрип backup_weekly.sh
Показать
BACKUP_HOST=127.0.0.1
BACKUP_USER=admin
BACKUP_DIR=/backup/serv1
SPOOL_DIR=/var/adm/backup
PATH=/bin:/usr/bin:/usr/sfw/bin; export PATH
umask 026
DAY=`date '+%d'`
if [ ! -d $SPOOL_DIR ]; then
echo "Cannot find spool directory $SPOOL_DIR."
exit 0
fi
cd $SPOOL_DIR
#
# Backup /usr/local/apache2 files
#
gtar -czf $SPOOL_DIR/local_apache2_$DAY.tar.gz -C / usr/local/apache2/conf usr/local/apache2/private usr/local/apache2/vhosts
[ -f $SPOOL_DIR/local_apache2_$DAY.tar.gz ] && \
rcp $SPOOL_DIR/local_apache2_$DAY.tar.gz $BACKUP_USER@$BACKUP_HOST:$BACKUP_DIR/
rm -f $SPOOL_DIR/local_apache2_$DAY.tar.gz
exit 0
, который по cron (выставлено 0 4 1,7,14,21,28 * *) должен выполнять архивацию файлов и удалять старые бэкап.
Так вот, поскольку в скриптах я чайник, прошу помочь дописать второй скрипт, чтобы выполнял архивацию файлов каждую неделю и удалял старые архивы и файлы старше 7 дней, ну или хотя бы просто удалял старше 7 дней :)