写一个sh脚本,包含以下内容: 1.如果/root/backup/programLogs目录不存在,创建此目录 2.如果/opt/logs目录不为空,使用tar命令将/opt/logs目录压缩、压缩包名称为programLog+日期,并放置到/root/backup/programLogs目录下 3.删除/root/backup/programLogs目录下创建日期在180天以前的文件
时间: 2023-07-21 13:08:47 浏览: 127
下面是一个包含你所需内容的Shell脚本:
```bash
#!/bin/bash
backup_dir="/root/backup/programLogs"
logs_dir="/opt/logs"
# 创建备份目录
if [ ! -d "$backup_dir" ]; then
mkdir -p "$backup_dir"
fi
# 压缩/opt/logs目录并放置到备份目录下
if [ -n "$(ls -A $logs_dir)" ]; then
backup_file="$backup_dir/programLog$(date +%Y%m%d).tar.gz"
tar -zcf "$backup_file" "$logs_dir"
fi
# 删除180天以前的文件
find "$backup_dir" -type f -mtime +180 -exec rm {} \;
```
将上述内容保存为一个.sh文件,比如`backup_script.sh`,然后在终端中运行如下命令来执行脚本:
```bash
chmod +x backup_script.sh
./backup_script.sh
```
这样,脚本就会按照你的要求创建目录、压缩文件,并删除180天以前的文件。请确保在执行脚本之前,你具备适当的权限来创建目录和删除文件。
相关问题
编写脚本backup.sh,可实现每周将/etc/目录备份到/backup/etcYYYY-mm-dd中 功能包括:1、创建/backup/etcYYYY-mm-dd文件夹 2、压缩备份/etc/*的内容 3、每周日上午2:15执行备份任务
好的,以下是 backup.sh 的脚本代码:
```
#!/bin/bash
# 获取当前日期
DATE=$(date +%Y-%m-%d)
# 判断是否为周日
if [ $(date +%u) -eq 7 ]; then
# 创建备份文件夹
mkdir -p /backup/etc$DATE
# 备份/etc目录
tar -czvf /backup/etc$DATE/etc.tar.gz /etc/*
echo "备份已完成"
else
echo "今天不是周日,无需备份"
fi
```
注意,这个脚本只能在 Linux 系统上运行,需要使用 root 权限运行。如果你需要每周日上午 2:15 执行备份任务,可以将以下内容添加到 crontab 中:
```
15 2 * * 7 /bin/bash /path/to/backup.sh
```
其中,`/path/to/backup.sh` 需要替换为实际的备份脚本路径。
使用crontab,每天3:00执行一次/root/script/program_log_backup.sh
要使用crontab在每天3:00执行脚本,您可以按照以下步骤操作:
1. 打开终端并输入以下命令以编辑crontab文件:
```
crontab -e
```
2. 在打开的编辑器中,添加一行来指定要执行的脚本和时间。将以下内容添加到文件的底部:
```
0 3 * * * /bin/bash /root/script/program_log_backup.sh
```
这将在每天的3:00执行指定的脚本。
3. 保存并关闭文件。
现在,您已经设置了一个cron作业,将在每天的3:00执行您的脚本。请确保脚本文件的路径和名称正确,并且具有足够的权限来执行。
阅读全文