如何实现一个每天对指定目录归档备份的脚本

如何实现一个每天对指定目录归档备份的脚本,输入一个目录名称(末尾不带/),将目录下所有文件按天归档保存,并将归档日期附加在归档文件名上,放在/root/archive 下

 

以下是一个简单的 Bash 脚本,可以实现每天对指定目录进行归档备份:

#!/bin/bash

# 获取当前日期
date=$(date +%Y-%m-%d)

# 获取输入的目录名称
dir=$1

# 确保目录存在
if [ ! -d "$dir" ]; then
  echo "目录不存在"
  exit 1
fi

# 创建备份目录(如果不存在)
backup_dir="/root/archive"
mkdir -p $backup_dir

# 归档目录下所有文件
tar -czvf $backup_dir/$dir-$date.tar.gz $dir/*

当您运行这个 Bash 脚本时,它将执行以下操作:

 

使用 date +%Y-%m-%d 命令获取当前日期,并将其存储在变量 date 中。

 

获取作为命令行参数传递给脚本的目录名称,并将其存储在变量 dir 中。

 

使用 if [ ! -d “$dir” ]; then 命令来检查目录是否存在。如果目录不存在,则输出错误消息并退出脚本。

 

创建备份目录 /root/archive,如果该目录不存在,使用 mkdir -p $backup_dir 命令。

 

使用 tar -czvf $backup_dir/$dir-$date.tar.gz $dir/* 命令来归档指定目录下的所有文件,并将归档文件存储在备份目录中。该命令使用 tar 工具来将文件压缩成 tarball 文件,并添加当前日期到文件名中。

 

要让这个脚本每天定时执行,您可以使用 cron 任务调度程序。

 

打开终端并输入 crontab -e 命令,这将打开您的 crontab 文件进行编辑。

 

在文件的最后添加以下行:

0 0 * * * /path/to/your/backup/script.sh /path/to/your/directory

这个命令告诉 cron 在每天午夜(0点0分)运行脚本,并传递您要备份的目录名称作为参数。请注意,您需要将 /path/to/your/backup/script.sh 和 /path/to/your/directory 替换为实际的脚本路径和目录路径。

 

保存并关闭文件。cron 现在将每天自动运行您的备份脚本。

 

请注意,cron 任务调度程序使用的是系统时区,因此请确保您的系统时区设置正确,以便脚本在预期的时间运行。

请登录后发表评论

    没有回复内容