每月第一天备份并压缩/etc目录的所有内容,存放在/root/bak目录里,且文件名为如下形式yymmdd_etc.tar,yy为年,mm为月,dd为日。
时间: 2024-09-14 15:15:13 浏览: 44
为了实现每月第一天自动备份并压缩`/etc`目录的要求,你可以编写一个简单的脚本,并使用cron定时任务来调度这个脚本的执行。
脚本内容大致如下:
```bash
#!/bin/bash
# 获取当前日期
CURRENT_DATE=$(date +%Y%m%d)
# 定义备份文件名
BACKUP_FILENAME="${CURRENT_DATE}_etc.tar"
# 定义备份目录和压缩后的备份文件存放路径
BACKUP_DIR=/root/bak
# 检查/root/bak目录是否存在,不存在则创建
if [ ! -d "$BACKUP_DIR" ]; then
mkdir -p "$BACKUP_DIR"
fi
# 备份并压缩/etc目录
tar -cvf "$BACKUP_DIR/$BACKUP_FILENAME" /etc
# 如果需要删除超过一定天数的旧备份文件,可以使用以下命令(例如,保留最近30天的备份)
# find "$BACKUP_DIR" -type f -mtime +30 -name "*_etc.tar" -exec rm -f {} \;
```
将这段脚本保存为一个`.sh`文件,例如`backup_etc.sh`,并赋予执行权限:
```bash
chmod +x /path/to/backup_etc.sh
```
然后,你需要设置一个cron定时任务来每天检查是否是月份的第一天,并执行这个脚本。你可以通过`crontab -e`命令编辑cron任务列表,并添加以下行:
```
0 0 1 * * /path/to/backup_etc.sh
```
这条cron任务的意思是:在每个月的第一天午夜00:00执行`backup_etc.sh`脚本。
请确保`/root/bak`目录对于执行脚本的用户有写入权限,并且确保cron服务正在运行。
阅读全文