湛江cms建站,成都网站建设加推广公司,网络整合营销案例,正规的品牌网站建设服务crontab常用命令
crontab -u user#xff1a;用来设定某个用户的crontab服务#xff1b;
crontab file#xff1a;file是命令文件的名字,表示将file做为crontab的任务列表文件并载入crontab。如果在命令行中没有指定这个文件#xff0c;crontab命令将接受标准输入#xf…
crontab常用命令
crontab -u user用来设定某个用户的crontab服务
crontab filefile是命令文件的名字,表示将file做为crontab的任务列表文件并载入crontab。如果在命令行中没有指定这个文件crontab命令将接受标准输入键盘上键入的命令并将它们载入crontab。
crontab -e编辑某个用户的crontab文件内容。不指定用户则编辑当前用户的crontab文件。
crontab -l显示某个用户的crontab文件内容不指定用户则显示当前用户的crontab文件内容。
crontab -r从/var/spool/cron目录中删除某个用户的crontab文件不指定用户则默认删除当前用户的crontab文件。
crontab -i在删除用户的crontab文件时给确认提示。设置一个定时任务任务如下该任务在linux服务器上是可以执行的。
*/1 * * * * python3 /Users/test.py
但是这个任务在mac上是不能执行的。
需要按照一下步骤执行肯定能搞定如果还搞不定私信我。
1、确保crontab在mac上是运行的
# 定时任务统统由 launchctl 来管理的看看 cron 任务有没有在里面
sudo launchctl list | grep cron # 有记录。查看一下启动项的配置
locate com.vix.cron# 创建一个database
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist# 查看 /etc/crontab 是否存在
ls -alF /etc/crontab# 创建该文件(如果不存在)
sudo touch /etc/crontab
2、验证crontab是否可以执行
crontab -e编写定时任务脚本
验证 crontab 是否可真正执行
# 每分钟输出当前时间到time.txt上.
*/1 * * * * /bin/date /User/time.txt
如果文件有内容说明能执行。跳转到第4步。
如果文件没有内容说明crontab不能执行问题点出在了mac的系统上看第3步。
3、mac开启crontab的权限
切记需要勾选。
系统是 OSX 10.15 Catalina 以上的对 cron 的权限进行了限制需要在 系统偏好设置 里将 cron 添加 完全磁盘访问权限重点在这里系统偏好设置 - 安全性与隐私 - 选择 隐私 - 左侧菜单找到完全磁盘访问权限cron 程序所在目录:终端输入 whereis cron打印/usr/sbin/cron再输入 open /usr/sbin在打开的文件夹内找到 cron把这个文件直接拖动到 系统偏好设置 右侧应用列表框内。勾选上。可以参考这个动图https://www.d3tt.com/view/109
4、使用绝对路径
使用python脚本可能任务还是不执行主要的原因是crontab中找不到python的路径。
这个时候需要使用python的绝对路径以及脚本的绝对路径。
如何找python的绝对路径。
which python3 定时任务不执行
原因有这么几个 1、cron进程是否启动 ps -ef|grep cron
2、cron配置是否正确书写 这个一般没有问题看看苹果开发社区
3、shell执行的环境是否设置 一般需要要shell脚本前面加上如下两行
#!/bin/bash source /etc/profile 4、shell脚本是否有问题 这个把脚本在终端手动执行一遍看一下能否到达效果
5、目录权限问题 这个问题也是一直困扰我好久的问题以上四点都没有问题的情况的下建议尝试一下换个目录我把shell放到了用户的Documents目录下了如下
*/2 * * * * /bin/bash -c /Users/qiaohaoting/Documents/access.sh /Users/qiaohaoting/Documents/access.log就是无法正常运行但是access.log文件会生产不过没有输出内容说明shell脚本执行失败但是chomd 777也授权了连Documents也授权了corn进程是root用户进程按道理不应该存在权限问题难道是MAC corn设置的问题不让访问这里还望做MAC开发的大佬指点迷津。然后我把文件放到/Users/qiaohaoting/下然后就可以正常运行了。 crontab表达式
crontab中的每一行代表一个定期执行的任务分为6个部分。前5个部分表示何时执行命令最后一个部分表示执行的命令。 每个部分以空格分隔除了最后一个部分命令可以在内部使用空格之外其他部分都不能使用空格。 前5个部分分别代表分钟小时天月星期每个部分的取值范围如下
分钟 0 - 59
小时 0 - 23
天 1 - 31
月 1 - 12
星期 0 - 6 0表示星期天
除了这些固定值外还可以配合星号*逗号,和斜线/来表示一些其他的含义 星号 表示任意值比如在小时部分填写 * 代表任意小时每小时 逗号 可以允许在一个部分中填写多个值比如在分钟部分填写 1,3 表示一分钟或三分钟 斜线 一般配合 * 使用代表每隔多长时间比如在小时部分填写 */2 代表每隔两分钟。 所以 */1 和 * 没有区别*/2 可以看成是能被2整除的任意值。 例如每天1500执行AutoApplescript.applescript脚本16:10执行AutoLog.sh
sudo crontab -e
0 15 * * * osascript /Users/XXX/Desktop/AutoDeployment/AutoApplescript.applescript
10 16 * * * /bin/sh /Users/XXX/Desktop/AutoDeployment/AutoLog.sh /Users/XXX/Desktop/auto.log 21