我需要一个shell脚本,脚本名为cut.sh,每天凌晨0点执行一次。脚本功能是复制/data/nginx/error.log文件,到/data/nginx/logback位置下,文件名称是带年月日的时间属性。然后清空/data/nginx/error.log文件
时间: 2024-09-24 17:08:36 浏览: 26
你需要创建一个名为`cut.sh`的Shell脚本,可以使用cron定时任务让它每天凌晨0点自动运行。以下是脚本的内容,它将完成指定的操作:
```bash
#!/bin/bash
# 定义源文件路径和目标文件夹
SOURCE_FILE="/data/nginx/error.log"
TARGET_DIR="/data/nginx/logback"
# 使用当前日期生成目标文件名
TIMESTAMP=$(date +%Y%m%d)
TARGET_FILE="$TARGET_DIR/error_$(date +%Y%m%d).log"
# 每天凌晨0点执行
if [[ $(date +%H) -eq 0 ]]; then
# 复制文件并重命名
cp "$SOURCE_FILE" "$TARGET_FILE"
# 清空原始日志文件
echo "" > "$SOURCE_FILE"
fi
```
为了使这个脚本每天凌晨0点运行,你需要添加一个cron作业。打开终端,输入以下命令编辑crontab配置:
```sh
crontab -e
```
然后在编辑器中添加下面一行,表示每天凌晨00分执行`cut.sh`脚本:
```bash
0 0 * * * /path/to/cut.sh
```
这里 `/path/to/cut.sh` 应替换为你的实际脚本路径。保存并关闭编辑器后,新的cron任务就会开始生效。
阅读全文