对数据表分别备份,dump文件比较大,考虑压缩保存。
cd /home/dtmngsvr/data/collect dir=/home/dtmngsvr/data/backup currentdate=$(date "+%y%m%d") ls -ltr|grep "dmp"|awk '{ print substr($9,1,6) }'|sort|uniq|while read str do tbname=$str$currentdate tar -zcvf $tbname.tar.gz $str* mv $tbname.tar.gz $dir rm $str* done if [ $? -eq 0 ];then echo "success$currentdate">>tar.log else echo "failed$currentdate">>tar.log fi
说明:
# 获取当前系统时间 # 原格式输出Fri Nov 8 10:31:22 CST 2019 echo $(date) # 时间串输出 echo $(date "+%Y%m%d%H%M%S") #20191108103902 echo $(date "+%y%m%d%H%M%S") #191108103928 echo $(date "+%Y%m%d") #20191108 echo $(date "+%y%m%d") #191108 # 时间格式输出 echo $(date "+%Y-%m-%d %H:%M:%S") #2019-11-08 10:43:42 echo $(date "+%Y.%m.%d") #2019.11.08
# Y显示4位年份,y显示2位年份
# m表示月份,M表示分钟
# d表示天,D表示当前日期
# H表示小时,h表示月份
# s显示当前秒钟,单位毫秒,S显示当前始终,单位为秒