写一个sh脚本,包含以下内容: 1.如果/root/backup/programLogs目录不存在,创建此目录 2.如果/opt/logs目录不为空,使用tar命令将/opt/logs目录压缩、压缩包名称为programLog+日期,并放置到/root/backup/programLogs目录下 3.删除/root/backup/programLogs目录下创建日期在180天以前的文件
时间: 2023-07-21 18:08:45 浏览: 142
以下是您需要的脚本内容:
```bash
#!/bin/bash
# 检查目录是否存在,如果不存在则创建
if [ ! -d "/root/backup/programLogs" ]; then
mkdir -p /root/backup/programLogs
fi
# 检查/opt/logs目录是否为空
if [ "$(ls -A /opt/logs)" ]; then
# 获取当前日期
date=$(date +%Y%m%d)
# 压缩/opt/logs目录并将压缩包放置到/root/backup/programLogs目录下
tar -czf /root/backup/programLogs/programLog$date.tar.gz /opt/logs
# 删除180天以前的文件
find /root/backup/programLogs/* -mtime +180 -exec rm {} \;
fi
```
您可以将上述代码保存为一个.sh文件,并通过运行`bash your_script.sh`或者`./your_script.sh`来执行脚本。请确保您具有足够的权限来执行脚本文件。
相关问题
编写脚本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执行您的脚本。请确保脚本文件的路径和名称正确,并且具有足够的权限来执行。
阅读全文