您现在的位置是:网站首页> php专栏 常见问题
tp5定时任务,定时清理日志文件
亦然2019-08-15 10:23:35【常见问题】人已围观
简介在开发中,有时会有需要定时清理一些不必要的记录,比如商城中用户30天前的浏览记录,观看视频的7天前的观影记录。这些记录需要固定的周期来清理,可以通过linux的crontab定时任务来实现。
写一个简单的例子,清除7天前的视频观看记录。
1.tp5中写一个文件,在文件里定义删除方法
public function deldata(){ //要清空的表 $arr = [ 0 => 'mac_vod_find_log', 1 => 'mac_vod_look_log', 2 => 'mac_vod_look_log', 3 => 'mac_vod_look_log0', 4 => 'mac_vod_look_log1', 5 => 'mac_vod_look_log2', 6 => 'mac_vod_look_log3', 7 => 'mac_vod_look_log4', 8 => 'mac_vod_look_log5', 9 => 'mac_vod_look_log6', 10 => 'mac_vod_look_log7', 11 => 'mac_vod_look_log8', 12 => 'mac_vod_look_log9', ]; //查表 $sql = "SELECT table_name FROM information_schema. COLUMNS WHERE table_name LIKE '%mac_vod_find_log%' OR table_name LIKE '%mac_vod_look_log%' GROUP BY table_name;"; $all_table = Db::query( $sql ); if($all_table){ foreach( $all_table as $key => $value ){ if(in_array( $value['table_name'] , $arr )){ $result = Db::connect(config('database1'))->execute('truncate table '.$value['table_name']); echo ("清空".$value['table_name'].'表数据成功!'.'</br>'); } } } }
2.liunx 服务器配置crontab定时任务
crontab是一个linux下 的定时执行工具,可以在无需人工干预的情况下运行作业。
常用命令如下:
service crond status 查看服务状态
yum install crontabs 安装crontab
crontab -e 打开crontab编辑
crontab -l 查看当前的定时任务
crontab -r 删除 crontab 文件。
crontab -ir 删除 crontab 文件前提醒用户。
service crond start 启动服务
service crond stop 关闭服务
service crond restart 重启服务
service crond reload 重新载入配置
service crond status 查看服务状态
chkconfig –level 35 crond on 加入开机启动
大概常用的就这么多,现在讲解一下怎么配置每个星期一凌晨执行清楚命令。
xshell 连接linux服务器,输入crontab -e 命令,进入vim编辑器,写入命令。
0 0 * * 1 crul 方法地址
保存之后,这样定时任务就已经设置成功了。
0 0 * * 1 表示的是 每个星期一的00:00 可以按照下图,设置自己需要的时间。

很赞哦!()