说明
centos几种文件备份方式: 每天备份, 限制数量备份和文件夹备份脚本, 可自行创建 a.txt~d.txt, dirA~dirD
测试
## 命令部分说明
crontab -e #添加定时任务
00 02 * * * sh /路径/脚本.sh #分 时 日 月 星期(0-6 0为星期日) 命令
crontab -l #查看任务列表
tail -f /var/log/cron #查看任务日志
dirname $(readlink -f $0) #当前脚本路径
if [[ ! '/test' =~ ^/.* ]] # =~ 正则判断字符串是否以/开始
tar -zcvf a.tar.gz a.txt &>> a.log # &>> a.log相当于 1>>a.log 2>&1,普通日志和错误日志都写到a.log文件
效果
每天备份脚本
backupMaxDay.sh
#!/bin/bash
##
## 限量备份文件
##
## 1.最好加上可执行权限。
## chmod 755 backupMaxDay.sh
## 2.将脚本添加到计划任务中
## crontab -e
## ## 每天2.00点备份一次
## 分 时 日 月 星期(0-6 0为星期日)
## 00 02 * * * sh /脚本路径/backupMaxDay.sh
## crontab -l #查看任务列表; tail -f /var/log/cron #查看任务日志;
##
################################## 配置 #####################################
## 需要备份的绝对路径目录
SourceDir=/test/backup/backupSource
## 备份文件配置 [ "a.txt b.txt d.txt", `ls $SourceDir` ]
BackupItems="a.txt b.txt d.txt"
## 备份至此目录
DestDir=/test/backup/backupDest
## 备份档案文件保留天数
RetainDay=1
## 执行失败直接退出
set -ue
################################## 初始化 ###################################
CurrFileDir=`dirname $(readlink -f $0)`
if [[ ! -d $CurrFileDir/logs ]]; then mkdir $CurrFileDir/logs; fi
LogFile=$CurrFileDir/logs/${0##*/}.`date +"%Y%m"`.log
if [[ ! $SourceDir =~ ^/.* || ! -d $SourceDir ]]; then echo 需要备份的绝对路径目录不存在 >> $LogFile; exit; fi
if [[ -z $BackupItems ]];then echo 未配置需要备份的文件 >> $LogFile; exit; fi
if [ ! -d $DestDir ]; then mkdir -p