版本1
commit
e7f5e836d2
|
|
@ -0,0 +1,87 @@
|
|||
#!/bin/bash
|
||||
|
||||
# 增强版 logrotate 配置生成脚本
|
||||
|
||||
create_logrotate_config() {
|
||||
local log_path="$1"
|
||||
local user_group="$2"
|
||||
|
||||
# 配置文件名
|
||||
local log_name=$(basename "$log_path")
|
||||
local config_file="/etc/logrotate.d/${log_name}"
|
||||
|
||||
# 构建配置内容
|
||||
local config_content="$log_path {
|
||||
daily
|
||||
missingok
|
||||
rotate 30
|
||||
compress
|
||||
delaycompress
|
||||
notifempty
|
||||
copytruncate
|
||||
dateext
|
||||
dateformat -%Y%m%d"
|
||||
|
||||
if [ -n "$user_group" ]; then
|
||||
config_content="$config_content
|
||||
create 644 $user_group"
|
||||
fi
|
||||
|
||||
config_content="$config_content
|
||||
}"
|
||||
|
||||
# 写入文件
|
||||
echo "$config_content" > "$config_file"
|
||||
return $?
|
||||
}
|
||||
|
||||
# 主程序
|
||||
echo "=========================================="
|
||||
echo " logrotate 配置生成工具"
|
||||
echo "=========================================="
|
||||
|
||||
# 获取日志路径
|
||||
read -p "请输入日志文件的完整路径: " log_path
|
||||
log_path=$(echo "$log_path" | sed 's/^ *//;s/ *$//') # 去除首尾空格
|
||||
|
||||
if [ -z "$log_path" ]; then
|
||||
echo "错误:日志文件路径不能为空!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 获取用户组
|
||||
read -p "请输入日志文件属主(用户:组),留空则使用系统默认: " user_group
|
||||
user_group=$(echo "$user_group" | sed 's/^ *//;s/ *$//')
|
||||
|
||||
# 确认信息
|
||||
echo ""
|
||||
echo "配置摘要:"
|
||||
echo "📁 日志文件: $log_path"
|
||||
echo "⚙️ 配置文件: /etc/logrotate.d/$(basename "$log_path")"
|
||||
echo "👤 文件权限: ${user_group:-系统默认}"
|
||||
echo ""
|
||||
|
||||
read -p "确认创建配置?(y/N): " confirm
|
||||
if [[ ! $confirm =~ ^[Yy]$ ]]; then
|
||||
echo "操作已取消"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# 创建配置
|
||||
if create_logrotate_config "$log_path" "$user_group"; then
|
||||
echo "✅ 配置创建成功!"
|
||||
echo ""
|
||||
echo "测试配置:"
|
||||
echo "sudo logrotate -d /etc/logrotate.d/$(basename "$log_path")"
|
||||
echo ""
|
||||
echo "立即执行:"
|
||||
echo "sudo logrotate -vf /etc/logrotate.d/$(basename "$log_path")"
|
||||
else
|
||||
echo "❌ 配置创建失败!"
|
||||
echo "请检查:"
|
||||
echo "1. 是否使用 sudo 运行"
|
||||
echo "2. 磁盘空间是否充足"
|
||||
echo "3. 目录权限是否正确"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
Loading…
Reference in New Issue