shell+定时任务+nginx信号管理,完成日志按日期存储
Linux定时任务
服务操作说明:
/sbin/service crond start //启动服务
/sbin/service crond stop //关闭服务
/sbin/service crond restart //重启服务
/sbin/service crond reload //重新载入配置
/sbin/service crond status //状态
centos 7
systemctl reload crond.service //重新载入配置
查看定时任务日志:
tail -f /var/log/cron
实际应用: shell+定时任务+nginx信号管理,完成日志按日期存储
分析思路:
凌晨00:00:01,把昨天的日志重命名,放在相应的目录下
再USR1信息号控制nginx重新生成新的日志文件
具体脚本:
#!/bin/bash
base_path='/usr/local/nginx/logs'
log_path=$(date -d yesterday +"%Y%m")
day=$(date -d yesterday +"%d")
mkdir -p $base_path/$log_path
mv $base_path/access.log $base_path/$log_path/access_$day.log
#echo $base_path/$log_path/access_$day.log
kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`
通过PHP来控制和修改linux的计划任务
参考:https://mengkang.net/212.html
error_reporting(E_ALL);
$data = "* * * * * curl 'http://quankr2.com/index.php?g=CollectArticle&m=Collect&a=test'\n";
file_put_contents('/mnt/hgfs/code/root', $data);
$handle = popen('/usr/bin/sudo cp /mnt/hgfs/code/root /var/spool/cron/root','r');
pclose($handle);
处理过程
1.修改/var/spool/cron 目录的权限
# chmod 777 /var/spool/cron
2.通过PHP修改/var/spool/cron/用户名 这个文件时,定时任务命令语句后面一定要以换行符(\n)结尾.