本文共 1990 字,大约阅读时间需要 6 分钟。
前段时间写的使用python脚本自动备份系统文件,今天来写一个使用shell脚本增量备份系统文件,顺便复习一下shell脚本相关的命令,这个脚本可以根据自己的需求来备份不同的文件或者文件夹,进行完整备份和增量备份。直接上脚本如下:
#!/bin/sh#Automatic Backup Linux System Files#Author wugk 2013-11-22#Define VariableSOURCE_DIR=( $*)TARGET_DIR=/data/backup/YEAR=`date +%Y`MONTH=`date +%m`DAY=`date +%d`WEEK=`date +%u`FILES=system_backup.tgzCODE=$?if [ -z "$*" ];then echo -e "Please Enter Your Backup Files or Directories\n--------------------------------------------\nExample $0 /boot /etc ......" exitfi#Determine Whether the Target Directory Existsif [ ! -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 CommandFull_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 CommandAdd_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 !" fielse 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 !" fifi}Full_Backup;Add_Backup
以上脚本仅供参考,还有很多需要优化、完善和调整的地方,欢迎大家提出意见。
转载地址:http://jrptx.baihongyu.com/