Loading... ## 系统信息 `Description: Debian GNU/Linux 12 (bookworm)` ## 创建脚本文件并添加可执行权限 ```sh root@k8s-master:/home/huoyu/WorkSpace/memos_backup# touch backup_memos.sh root@k8s-master:/home/huoyu/WorkSpace/memos_backup# chmod +x backup_memos.sh ``` `nano backup_memos.sh` ```sh #!/bin/bash # 备份目录 BACKUP_DIR="/home/huoyu/WorkSpace/memos_backup/data" # 源目录 SOURCE_DIR="/home/huoyu/WorkSpace/File/huoyu_db/FileAll/conceal/memos" SOURCE_PARENT_DIR=$(dirname "$SOURCE_DIR") # 获取当前日期 CURRENT_DATE=$(date +%Y%m%d) # 备份文件名 BACKUP_FILE_NAME="$BACKUP_DIR/memos_backup_$CURRENT_DATE.tar.gz" # 判断备份目录是否存在,如果不存在则创建 if [ ! -d "$BACKUP_DIR" ]; then mkdir -p "$BACKUP_DIR" echo "Backup directory created: $BACKUP_DIR" fi echo "源路径:$SOURCE_DIR" echo "备份文件:$BACKUP_FILE_NAME" # 切换到源目录的父目录,并开始备份 cd "$SOURCE_PARENT_DIR" tar --acls --xattrs -cvzf "$BACKUP_FILE_NAME" "$(basename "$SOURCE_DIR")" # 删除历史备份 - 一周以前 find "$BACKUP_DIR" -name "memos_backup_*.tar.gz" -type f -mtime +7 -exec rm {} \; echo "Backup completed and old backups deleted." ``` 脚本部分详解: * if [ ! -d "$BACKUP_DIR" ]: 判断备份路径是否存在 * tar * --acls: 保留文件和目录的访问控制列表。 * --xattrs:保留文件和目录的扩展属性。 * -czvf: 创建一个 gzip 压缩的 tar 归档。 * find * -type f: 只寻找普通文件(f 代表普通文件),而不包括目录、符号链接等。 * -mtime +7: 只寻找那些修改时间超过 7 天的文件。mtime 代表文件内容最后修改时间,+7 表示 7 天以前。 * -exec rm {} \; :对找到的每个文件执行 rm 命令。rm 是删除文件的命令,{} 会被 find 指令找到的文件名替换。\; 表示命令结束。注意,-exec 和 \; 之间必须有一个空格。 确保无论文件时间如何,总是保留最新的 7 个备份。 ```bash # 删除超过 7 个的旧备份 ls -tp "$BACKUP_DIR"/memos_backup_*.tar.gz | grep -v '/$' | tail -n +8 | xargs -I {} rm -- {} ``` ## 配置定时任务 `crontab -e` ```sh 1 1 * * * /home/huoyu/WorkSpace/memos_backup/backup_memos.sh >> /home/huoyu/WorkSpace/memos_backup/logs/memos_backup_$(date +\%Y\%m\%d_\%H\%M\%S).log ``` 解析: * 1 1 * * *:这是 cron 任务的调度规则,由五个域组成,每个域代表一个时间单位。 * 1:分钟域,表示在每小时的第 1 分钟执行。 * 1:小时域,表示在每天的凌晨 1 点执行。 * *:日期域,表示在每个月的每一天执行。 * *:月份域,表示在每年的每个月执行。 * *:星期域,表示在每周的每一天执行。 如果想每分钟备份一次 ```sh * * * * * /home/huoyu/WorkSpace/memos_backup/backup_memos.sh >> /home/huoyu/WorkSpace/memos_backup/logs/memos_backup_$(date +\%Y\%m\%d_\%H\%M\%S).log ``` 最后修改:2024 年 09 月 26 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 如果觉得我的文章对你有用,请随意赞赏