shell定时增量备份脚本_使用SHELL脚本自动备份Linux系统

前段时间写的使用Python脚本自动备份系统文件,今天来写一个使用shell脚本增量备份系统文件,顺便复习一下shell脚本相关的命令,这个脚本可以根据自己的需求来备份不同的文件或者文件夹,进行完整备份和增量备份。

直接上脚本如下:

#!/bin/sh

#Automatic Backup Linux System Files

#Author wugk 2013-11-22

#Define Variable

SOURCE_DIR=(

$*

)

TARGET_DIR=/data/backup/

YEAR=`date +%Y`

MONTH=`date +%m`

DAY=`date +%d`

WEEK=`date +%u`

FILES=system_backup.tgz

CODE=$?

if

[ -z "$*" ];then

echo -e "Please Enter Your Backup Files or Directories\n--------------------------------------------\nExample $0 /boot /etc ......"

exit

fi

#Determine Whether the Target Directory Exists

if

[ ! -d $TARGET_DIR/$YEAR/$MONTH/$DAY ];then

mkdir -p $TARGET_DIR/$YEAR/$MONTH/$DAY

echo "This $TARGET_DIR is Created Successfully !"

fi

#EXEC Full_Backup Function Command

Full_Backup()

{

if

[ "$WEEK" -eq "7" ];then

rm -rf $TARGET_DIR/snapshot

cd $TARGET_DIR/$YEAR/$MONTH/$DAY ;tar -g $TARGET_DIR/snapshot -czvf $FILES `echo ${SOURCE_DIR[@]}`

[ "$CODE" == "0" ]&&echo -e  "--------------------------------------------\nThese Full_Backup System Files Backup Successfully !"

fi

}

#Perform incremental BACKUP Function Command

Add_Backup()

{

cd $TARGET_DIR/$YEAR/$MONTH/$DAY ;

if

[ -f $TARGET_DIR/$YEAR/$MONTH/$DAY/$FILES ];then

read -p "These $FILES Already Exists, overwrite confirmation yes or no ? : " SURE

if [ $SURE == "no" -o $SURE == "n" ];then

sleep 1 ;exit 0

fi

#Add_Backup Files System

if

[ $WEEK -ne "7" ];then

cd $TARGET_DIR/$YEAR/$MONTH/$DAY ;tar -g $TARGET_DIR/snapshot -czvf $$_$FILES `echo ${SOURCE_DIR[@]}`

[ "$CODE" == "0" ]&&echo -e  "-----------------------------------------\nThese Add_Backup System Files Backup Successfully !"

fi

else

if

[ $WEEK -ne "7" ];then

cd $TARGET_DIR/$YEAR/$MONTH/$DAY ;tar -g $TARGET_DIR/snapshot -czvf $FILES `echo ${SOURCE_DIR[@]}`

[ "$CODE" == "0" ]&&echo -e  "-------------------------------------------\nThese Add_Backup System Files Backup Successfully !"

fi

fi

}

Full_Backup;Add_Backup

以上脚本仅供参考,还有很多需要优化、完善和调整的地方,欢迎大家提出意见。

相关阅读:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用shell脚本定时执行xtrabackup增量备份,具体步骤如下: 1. 安装xtrabackup工具,该工具可以备份MySQL数据库并支持增量备份。 2. 编写shell脚本,包括备份命令、备份文件存储路径、备份日志记录等内容。 3. 使用crontab命令设置定时任务,例如每天凌晨2点执行备份任务。 下面是一个简单的示例脚本,用于每天凌晨2点执行增量备份并发送备份信息邮件: ```bash #!/bin/bash # 定义备份文件存储路径 backup_dir=/data/backup/mysql # 定义备份日志文件路径 log_file=/data/backup/mysql/backup.log # 定义MySQL用户名和密码 user=root password=123456 # 定义备份文件名前缀 prefix=mysql_backup # 定义备份文件名后缀 suffix=$(date +%Y%m%d_%H%M%S) # 定义增量备份命令 incremental_command="xtrabackup --backup --target-dir=$backup_dir --incremental-basedir=$backup_dir/incremental --user=$user --password=$password >> $log_file 2>&1" # 定义完整备份命令 full_command="xtrabackup --backup --target-dir=$backup_dir --user=$user --password=$password >> $log_file 2>&1" # 判断是否存在增量备份目录,如果不存在则创建 if [ ! -d "$backup_dir/incremental" ]; then mkdir -p $backup_dir/incremental fi # 判断今天是否已经执行过增量备份,如果是则执行增量备份,否则执行完整备份 if [ -f "$backup_dir/incremental/$(date +%Y%m%d)_backup.incremental" ]; then eval $incremental_command else eval $full_command fi # 发送备份信息邮件 mail -s "MySQL Backup Report" [email protected] < $log_file ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值