nohup命令用于在后台运行程序,即使关闭终端也不会中断程序的执行。默认情况下,nohup会将输出重定向到名为nohup.out的文件中。如果你想要分割日志文件,可以使用logrotate工具或者编写一个简单的脚本来实现。
使用logrotate分割日志
-
确保你的系统已经安装了
logrotate。在大多数Linux发行版中,它已经预装好了。如果没有,可以使用以下命令安装:对于基于Debian的系统(如Ubuntu):
sudo apt-get install logrotate对于基于RPM的系统(如CentOS):
sudo yum install logrotate -
创建一个名为
nohup-logrotate.conf的配置文件,用于设置日志分割的规则。例如:/path/to/your/nohup.out { daily rotate 7 compress missingok notifempty create 0640 user group }这个配置表示每天分割一次日志文件,保留最近7天的日志,压缩旧日志,如果日志文件不存在则不报错,如果日志文件为空则不进行分割,创建新的日志文件并设置权限。
-
将
logrotate配置文件添加到/etc/logrotate.d/目录下:sudo cp nohup-logrotate.conf /etc/logrotate.d/ -
确保
logrotate定时任务已启用。编辑/etc/cron.daily/logrotate文件,确保其中包含以下内容:/usr/sbin/logrotate /etc/logrotate.conf这将确保每天运行
logrotate命令。
使用脚本分割日志
如果你不想使用logrotate,可以编写一个简单的脚本来实现日志分割。例如,创建一个名为rotate_nohup_log.sh的脚本:
#!/bin/bash
LOG_FILE="/path/to/your/nohup.out"
BACKUP_DIR="/path/to/your/log_backup"
DATE=$(date +"%Y%m%d")
mkdir -p "$BACKUP_DIR"
mv "$LOG_FILE" "${BACKUP_DIR}/nohup_out_${DATE}.log"
然后,为脚本添加可执行权限:
chmod +x rotate_nohup_log.sh
最后,你可以将此脚本添加到cron定时任务中,以便定期运行。例如,每天凌晨1点运行:
0 1 * * * /path/to/rotate_nohup_log.sh
这样,你的nohup日志文件就会被定期分割和备份。
以上就是关于“nohup日志如何分割”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm