Linux定时备份站点
shell脚本代码如下
#!/bin/bash
source_dir="站点目录"
#备份日期
backup_date=`date +%Y%m%d`
#备份日志目录
log_dir="/backup/logs"
#备份的目标目录
backup_path="/backup/site"
backup_dir="${backup_path}/${backup_date}"
[ ! -d $log_dir ] && mkdir -p $log_dir
log_dir=$log_dir/site_backup_log.log
[ ! -d $backup_dir ] && mkdir -p $backup_dir
backup_start_time=`date '+%Y-%m-%d %H:%M:%S'`
echo "站点备份开始!备份开始时间: ${backup_start_time} " >> $log_dir
cd $source_dir
for wwwdir in $source_dir/*
do
dir_name=$(basename $wwwdir)
backup_file=${backup_dir}/${dir_name}.tar.gz
tar zcf $backup_file $dir_name > /dev/null
chattr +i $backup_file
backup_site_time=`date '+%Y-%m-%d %H:%M:%S'`
if [ "$?" == 0 ];then
echo "站点(${dir_name})备份成功!备份时间: ${backup_site_time} " >> $log_dir
else
echo "站点(${dir_name})备份失败!备份时间:${backup_site_time} " >> $log_dir
fi
done
#删除30天前的数据
exp_list=`find ${backup_path} -mtime +30 -type d`
chattr -R -i $exp_list
rm -rf $exp_list
backup_end_time=`date '+%Y-%m-%d %H:%M:%S'`
echo "站点备份完成!备份完成时间:${backup_end_time} " >> $log_dir
echo "--------------------------------------------------------------------------------------- " >> $log_dir添加crontab定时任务
#每天凌晨三点执行 00 3 * * * /home/ssh/backup.sh