【Shell】备份某目录下的某些文件到对应的目录

admin / Shell / / 201 字 · 约 2 分钟 / 538 次阅读 /

项目需要将某目录中生成的 AAAAAAA18112100018.rct 文件进行定期备份,所以利用 shell 写了如下脚本:

  1. dir AAAAAAA18112100018.rct 文件的所在目录
  2. back_dir 是备份时的备份目录,用日期进行单独存放
  3. logfile 为日志文件 在使用时按照实际情况将以上内容进行修改即可使用;
#!/bin/bash
# *.rct file backup
dir="/home/AAAAAAA/RCV"
back_dir="/home/AAAAAAA/BAK/$(date +%Y)/$(date +%m)/$(($(date +%d)-1))"
logfile="/root/backup/backuprct.log"
list=$(ls $dir | grep -E "^[A-Z]{7,8}[0-9]{10,11}.rct$")

File_exist(){
        if [[ -f "${back_dir}/$1" ]];then
                rm -f ${dir}/$1 && echo "$(date +%m-%d-%H:%M:%S):$((10#$(date +%N) / 1000000)) $1 backup  Successful !!"  >> $logfile
        else
                cp -a ${dir}/$1 ${back_dir}/$1 && sleep 0.1s && File_exist $1
        fi
}

for i in ${list}
do
        [[ -d "${back_dir}" ]] || mkdir -p ${back_dir}
        cp -a ${dir}/$i ${back_dir}/$i
        sleep 0.1s
        File_exist $i
done

该脚本无定时功能,所以只能将该脚本的执行写进 Linux 的计划任务里: 计划任务如下:

$ crontab -e
0 00 * * * bash /root/backup/move.sh
admin

admin

云原生架构 · 全栈开发

感谢阅读本文!记录系统架构思考与实战复盘。专注于 Python、Django、PostgreSQL 与云原生容器化工程实践。