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