Write the Code. Change the World.

7月 17

条条大道通罗马,使用 linux 定时任务的方法也有很多种。都是 crontab,方式各不一样。列出常用,好用的一些命令。

基本

# crontab文件一般位于/etc/下,这里面存放系统运行的的调度程序
more /etc/crontab 

# 每个用户都会生成一个自动生成一个自己的crontab文件,一般位于/var/spool/cron目录下

cd /var/spool/cron
ls

# 查看当前用户或某个用户的定时任务,nginx 为用户
crontab -l nginx

# 编辑当前用户的定时任务
crontab -e

# 编辑某个用户的定时任务
crontab -e -u nginx

# 删除当前用户的定时任务
crontab -r

其实,laravel 使用定时任务不坑。坑的是一些细节问题。比如权限问题。如:root用户创建了定时任务,然后定时任务里边有了写日志的功能。这个时候,日志的用户组都是 root,然后其他用户组(nginx) 就没权限再写入数据了。这个时候,写入就会出错。这个就是坑。如果定时任务的用户是 nginx 就不会出现这个问题了。下边来下流程。

创建某个用户的定时任务

方式一

crontab -e -u nginx 

# 然后在里边编写命令即可

方式二

# 创建命令文本(cron.txt)。再执行命令
# * * * * * nginx /alidata/service/php/bin/php /alidata/www/kwva/test.kwva.cn/artisan schedule:run >> /dev/null 2>&1
crontab cron.txt -u nginx

参考

https://learnku.com/articles/6775/about-laravel-log-permissions

https://www.runoob.com/linux/linux-comm-crontab.html

https://www.jb51.net/article/98640.htm

https://blog.csdn.net/matengbing/article/details/81056524