Mac下使用crontab来实现定时任务

本文转载自:https://www.cnblogs.com/EasonJim/p/7819635.html

说明:

1、Linux和Mac下操作crontab都是一致的

2、配置文件都在/etc/crontab下,如果没有就创建。

3、测试发现直接使用crontab -e命令创建的定时任务是放在临时文件夹的,重启会删除,并且与/etc/crontab文件无关联。

实际操作:

  • 查看 crontab 是否启动

    sudo launchctl list | grep cron
  • 检查需要的文件

    $  LaunchAgents  ll /etc/crontab
    ls: /etc/crontab: No such file or directory  #表示没有这个文件,需要创建一个
  • 创建文件

    sudo touch /etc/crontab 

crontab的参数

  • 复制代码

    -u user:用来设定某个用户的crontab服务;
    
    file:file是命令文件的名字,表示将file做为crontab的任务列表文件并载入crontab。如果在命令行中没有指定这个文件,crontab命令将接受标准输入(键盘)上键入的命令,并将它们载入crontab。
    
    -e:编辑某个用户的crontab文件内容。如果不指定用户,则表示编辑当前用户的crontab文件。
    
    -l:显示某个用户的crontab文件内容,如果不指定用户,则表示显示当前用户的crontab文件内容。
    
    -r:从/var/spool/cron目录中删除某个用户的crontab文件,如果不指定用户,则默认删除当前用户的crontab文件。
    
    -i:在删除用户的crontab文件时给确认提示。

    复制代码

eg: */1 * * * * /bin/date >> /User/Username(你的用户名)/time.txt表示每分钟输出当前时间到time.txt上.

  • 如果出现以下问题

    crontab: no crontab for hayek - using an empty one
    crontab: "/usr/bin/vi" exited with status 1 
    1. 方法1:EDITOR=vim crontab -e 直接编辑,以后直接crontab -e直接打开就行。
    2. 方法2:export EDITOR=vim
    3. 方法3:向cron进程提交一个crontab文件之前,首先要设置环境变量EDITOR。cron进程根据它来确定使用哪个编辑器编辑crontab文件。9 9 %的UNIX和LINUX用户都使用vi,如果你也是这样,那么你就编辑$HOME目录下的. profile文件,在其中加入这样一行: 
      EDITOR=vi; export EDITOR

crontab的文件格式

    * 第1列分钟0~59
    * 第2列小时0~23(0表示子夜)
    * 第3列日1~31
    * 第4列月1~12
    * 第5列星期0~7(0和7表示星期天)
    * 第6列要运行的命令

crontab服务的重启关闭,开启

  • Mac系统下

    sudo /usr/sbin/cron start
    sudo /usr/sbin/cron restart
    sudo /usr/sbin/cron stop
  • Ubuntu:

    sudo /etc/init.d/cron start
    sudo /etc/init.d/cron stop
    sudo /etc/init.d/cron restart

参考:

http://blog.csdn.net/zhenhanhong_tony/article/details/52658055

http://blog.csdn.net/zmzwll1314/article/details/52389967

http://blog.csdn.net/biyongyao/article/details/77791238(以上内容转自此篇文章)

http://blog.csdn.net/meixuesong/article/details/27481883

http://blog.csdn.net/lgt633744/article/details/45932035(另类的定时任务实现)

 

Mac下,可以使用以下两种方法设置定时任务: 1. 使用cronjob cronjob是Mac OS中自带的任务管理器。可以通过以下步骤设置定时任务: 打开终端,输入以下命令: ``` crontab -e ``` 这将打开cronjob的编辑页面。在页面中添加你想要执行的命令及其执行时间。例如,如果你想每天晚上8点执行一个Python脚本,可以添加以下内容: ``` 0 20 * * * /usr/bin/python /path/to/your/script.py ``` 这将在每晚8点执行script.py文件。 2. 使用launchd launchd是Mac OS的系统级别的任务管理器。可以通过以下步骤设置定时任务: 创建一个plist文件,该文件包含你想要执行的命令及其执行时间。例如,以下是一个用于每天晚上8点执行Python脚本的plist文件: ``` <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>com.example.pythonjob</string> <key>ProgramArguments</key> <array> <string>/usr/bin/python</string> <string>/path/to/your/script.py</string> </array> <key>StartCalendarInterval</key> <dict> <key>Hour</key> <integer>20</integer> <key>Minute</key> <integer>0</integer> </dict> </dict> </plist> ``` 将该文件保存到~/Library/LaunchAgents目录中。 使用以下命令加载该任务: ``` launchctl load ~/Library/LaunchAgents/com.example.pythonjob.plist ``` 这将在每晚8点执行script.py文件。 无论使用哪种方法,都需要确保Python环境配置正确。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值