OSX定时执行脚本

1、前言

最近需要一个自动化请求一个地址获取信息,我为此制作一个nodejs脚本,命令行里输入:

这里的 1000 就是运行的次数,但是不能输入很大的值,否则服务器一直返回error;一个折衷的方法就是每隔半分钟启动一下这个脚本,这就需要在OSX中定时运行程序;

到网上找了一下教程,文章 OSX系统添加定时任务 讲解得不错,使用 crontab 和 launchctl 都可以启动定时任务,推荐使用后者;

2、行动

2.1、编写脚本

要想自动化,必须要有shell脚本,其实也很简单,将下列名字保存成 auto.sh :

注意要用绝对路径

然后脚本要改成可执行状态:

2.2、方案一:launchctl + plist文件

Step 1: 首先编写 plist 文件

将下列代码保存成 com.cc.jscon.auto.plist :

  • label这里就是给这个任务名个名字,这里一般取plist的文件名,这个名字不能和其它的plist重复。
  • auto.sh就是我们要执行的脚本
  • StartInterval里边的参数是说 每25秒 时候执行一下脚本。
  • StandardErrorPath指定了错误文件,这个文件需要自己创建,保证文件的存在;
  • StandardOutPath指定了正常输出的log,同样需要保证文件存在;

Step 2: 执行 launchctl

将plist文件移动到 ~/Library/LaunchAgents 文件夹下,然后 在~/Library/LaunchAgents 路径下执行下列命令:

好了这样就能自动化运行了。

还可以使用的命令有:

  • 要让任务生效,必须先load命令加载这个plist
  • 如果任务呗修改了,那么必须先unload,然后重新load
  • start可以测试任务,这个是立即执行,不管时间到了没有
  • 执行start和unload前,任务必须先load过,否则报错
  • stop可以停止任务


也可以借助在线工具launched 生成所需要的文件,这比copy代码要有保障地多,注意在线生成的话,不能指定脚本路径,所以使用 sh -c 命令,点击“生成”按钮之后可以获得plist文件:

这个网站还提供了现成的命令将这个文件拷贝到指定目录下,比如:

非常方便地将你想要做的事情一步到位了;

注意这里的plist名字是 com.zerowidth.launched.jscon.auto.plist,毕竟是在人家的网站上生成的,所以命名就是用它的了;不用担心,反正最后能正常运行;

2.3、方案二:使用GUI软件

如果觉得上面操作起来比较麻烦,可以使用 macscheduler软件,使用界面配置定时任务;点击 Browse... 按钮加载脚本:

没错,还是离不开脚本,这次需要使用 AppleScript,不过使用起来比较简单。这里我们将下面的代码保存成脚本即可:

这 AppleScript 脚本还是很容易入门的,推荐Applescript快速教程

3、总结

这是我第一次使用脚本写定时任务,就总结成此文,方便后续查阅;

MacOS的定时任务虽然麻烦,但也可以工程流程化,尤其可借助在线工具launched 生成所需要的文件,所以最核心的还是自己的nodejs程序;

参考文章:

时间: 2024-10-16 03:49:52

OSX定时执行脚本的相关文章

MySQL定时执行脚本(计划任务)实例

  查看event是否开启 代码如下 show variables like '%sche%'; 将事件计划开启 代码如下 set global event_scheduler =1; 创建存储过程test 代码如下 CREATE PROCEDURE test () BEGIN update examinfo SET endtime = now() WHERE id = 14; END; 创建event e_test 代码如下 create event if not exists e_test

MySQL定时执行脚本(计划任务)命令实例_Mysql

查看event是否开启 复制代码 代码如下: show variables like '%sche%'; 将事件计划开启 复制代码 代码如下: set global event_scheduler =1;   创建存储过程test   复制代码 代码如下: CREATE PROCEDURE test () BEGIN update examinfo SET endtime = now() WHERE id = 14; END; 创建event e_test 复制代码 代码如下: create e

Linux下设置定期执行脚本

  在Linux下,经常需要定期的执行一些脚本从而来实现一些功能. 在Linux下我们用crontab来实现定期的执行脚本这个功能,下面就介绍一下crontab的使用.以及我遇到的一些问题 一. crontab的使用说明 1. crond 是linux用来定期执行程序的命令.当安装完成操作系统之后,默认便会启动此任务调度命令.crond命令每分钟会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作.而linux任务调度的工作主要分为以下两类 a. 系统执行的工作,比如垃圾清理,备份

linux下实现定时执行php脚本

这篇文章主要介绍了linux下实现定时执行php脚本的方法及具体使用示例,非常不错的文章,这里推荐给大家.     在linux中输入命令   代码如下: crontab -e   然后使用vim的命令编辑打开的文件,输入   代码如下: 0 * * * * /usr/bin/php -f /home/userxxx/update.php   保存,退出,好了,现在系统会在每个0点自动执行update.php脚本,脚本中可以编写数据库执行,自动发邮件等功能. 注:直接写成 0 * * * * p

win7计划任务定时执行PHP脚本设置图解_php实例

做php开发的朋友有时候会希望自己的电脑能每天定时的运行一下某个脚本,但定时执行php脚本这种概念似乎多半是在linux中才提到,下面这篇文章主要和大家分享一下在win7下如何设置计划任务,以实现定时执行我们的php脚本. 1.如下图依次选择 "开始"--->"所有程序"--->"附件"--->"系统工具"--->"务计划程序" 2.在打开的面板中选择"创建任务"

php定时执行PHP脚本一些方法总结

linux下定时执行php脚本 执行PHP脚本 方法1 如果你想定时执行某一个PHP脚本 可以直接这样写: */1 * * * * root -q /bin/local/php /path/to/your/php/script.php (每一分钟执行一次script.php) 注意,这样写需要把PHP变成可执行的脚本文件.在命令行下,脚本所在目录 chmod +x script.php crontab+php-cgi 定时执行PHP脚本 1. 在web根目录创建请求的脚本index.php   

在linux下利用crontab定时执行PHP脚本

最近急需这种方法,记录一下,有空的时候尝试^^ 在 linux下,可以使用crontab + php的方法: 1.使用crontab –e编辑定时任务 内容为: xx:xx:xx 执行一个test.php文件 2.php文件必须在文件头一行,加上解释器路径(就象perl做的那样) #!/usr/local/bin/php PHP的执行需要Apache的支持,shell脚本的执行需要Linux的支持,而Linux支持定时运行某个程序的功能 -----------------------------

如何使用Linux的Crontab定时执行PHP脚本的方法_php技巧

下面介绍Crontab的两种方法. 一.在Crontab中使用PHP执行脚本 就像在Crontab中调用普通的shell脚本一样(具体Crontab用法),使用PHP程序来调用PHP脚本. 每一小时执行myscript.php如下: 复制代码 代码如下: # crontab -e 00 * * * * /usr/local/bin/php /home/john/myscript.php /usr/local/bin/php为PHP程序的路径. 二.在Crontab中使用URL执行脚本 如果你的P

windows定时执行PHP的技巧

windows定时执行PHP相信不少读者(PHP爱好者)在工作.学习的过程中经常抱怨:在WIN如何让PHP定时自动发信呢??如何让MYSQL实现自动备份而无后顾之忧呢??如 果完全依靠手工进行当然也可以实现,但操作上似乎过于繁琐了一点!别着急,利用系统的任务计划程序(Windows 98称之为计划任务)可轻易解决这一问题.这一功能往往被很多用户忽略或者未曾想到:). 所谓任务计划就是由计算机自动调用用户事先设置好的应用程序,从而达到简化用户操作的目的.利用Windows 2000的任务计划程序(