以下是一个简单的示例脚本,用于按小时切割Nginx日志文件:
#!/bin/bash
# 指定Nginx日志路径和目标路径
log_path="/var/log/nginx/access.log"
target_dir="/path/to/target/directory"
# 获取当前时间,并格式化为年月日时
current_time=$(date +"%Y%m%d%H")
# 构建目标文件名
target_file="${target_dir}/access_${current_time}.log"
# 判断目标文件夹是否存在,若不存在则创建
if [ ! -d "$target_dir" ]; then
mkdir -p "$target_dir"
fi
# 切割日志文件,将当前内容复制到目标文件中并清空原始日志文件
cp "$log_path" "$target_file"
echo "" > "$log_path"
# 重启Nginx以使新的日志文件生效(可选)
service nginx restart
请根据实际情况修改log_path和target_dir变量来适应您的环境。此脚本将会在每个小时创建一个新的日志文件,并将当前内容复制到相应的目标文件中,然后清空原始日志文件。如果需要,在切割完成后可以添加命令来重启Nginx以使新的日志文件生效。记得给脚本执行权限(chmod +x script.sh)并使用合适的方式调度执行脚本(例如cron作业)来自动化该过程。
内容由零声教学AI助手提供,问题来源于学员提问




