前言:本文由AI辅助完成,请自行核实重要信息。


1.新建bash脚本

nano backup.sh #进入编辑

#!/bin/bash

# 设置备份源目录和目标目录
SOURCE_DIR="/home/user/documents"
BACKUP_DIR="/backup"

# 获取当前日期,格式为年-月-日_小时-分钟-秒
DATE=$(date +"%Y-%m-%d_%H-%M-%S")

# 设置备份文件的名称
BACKUP_NAME="backup_$DATE.tar.gz"

# 创建备份(使用 tar 命令进行压缩备份)
tar -czf "$BACKUP_DIR/$BACKUP_NAME" -C "$SOURCE_DIR" .

# 输出备份成功的提示信息
echo "备份成功!备份文件:$BACKUP_DIR/$BACKUP_NAME"

SOURCE_DIR="/home/user/documents": 这是你要备份的文件夹路径。

BACKUP_DIR="/backup": 这是备份文件保存的目标目录。

DATE=$(date +"%Y-%m-%d_%H-%M-%S"): 获取当前日期和时间,用于为备份文件命名。

tar -czf "$BACKUP_DIR/$BACKUP_NAME" -C "$SOURCE_DIR" .: 使用 tar 命令将源目录中的文件打包并压缩为 .tar.gz 格式。 -C 选项指定了切换到源目录进行打包,tar 会将源目录下的所有文件打包。.tar.gz 文件就是先使用 tar 打包,然后用 gzip 压缩后的文件。你也可以看到这种格式有时也被称为 .tgz

echo "备份成功!备份文件:$BACKUP_DIR/$BACKUP_NAME": 输出备份成功的信息,并显示备份文件的路径。

年份

  • %Y:表示四位数的年份(例如:2025)
  • %y:表示两位数的年份(例如:25)

月份与分钟

  • %m(小写):表示月份(01 到 12)
  • %M(大写):表示分钟(00 到 59)

日期

  • %d:表示一个月中的日子(01 到 31)

小时

  • %H:表示24小时制的小时(00 到 23)
  • %I:表示12小时制的小时(01 到 12)

2.更改脚本权限

chmod +x backup.sh

3.打开crontab

crontab -e

4.添加命令

0 2 * * * /path/to/backup.sh #每天2点执行脚本/path/to/backup.sh

五个星星依次代表:分钟 小时 日 月 星期