mac 运行容器中的定时任务

本文介绍了在mac环境下,通过crontab执行Docker容器内的定时任务遇到的问题。当尝试使用`docker exec -it`命令在crontab配置中运行PHP artisan schedule:run时,任务并未正常执行。经过排查,发现`-it`参数导致问题,去除该参数后,定时任务开始正常运行。
摘要由CSDN通过智能技术生成

1. 容器中运行的代码需要跑定时任务,如进入容器执行 php /var/www/html/artisan schedule:run,能正常执行对应的任务

2. 在容器外,进入终端使用 docker exec -it 容器名 php /var/www/html/artisan schedule:run,也能正常执行任务

3. crontab -e

* * * * *  /usr/local/bin/docker exec -it 容器名 php /var/www/html/artisan schedule:run >> /dev/null 2>&1

 配置好后,发现任务根本没有运行,一直以为是crontab未执行,查看crontab服务也是在的。然后加入测试代码:

* * * * *  /bin/date >> /Users/xxx/Desktop/cron.txt
* * * * *  /usr/local/bin/docker exec -it 容器名 php /var/www/html/artisan schedule:run >> /dev/null 2>&1

发现cron.txt里面正常执行是时间任务;

然后将脚本改成如下:

* * * * *  /bin/date >> /Users/xxx/Desktop/cron.txt
* * * * *  /usr/local/bin/docker exec -it 容器名 php /var/www/html/artisan schedule:run >> /Users/xxx/Desktop/容器名.txt

发现对应的 容器名.txt 文件生成了,只是没有内容。在网上

Mac上设置定时任务,通常使用的是“Automator”(自动化工具)或“cron”命令行工具,这两个方法可以帮助你创建计划的任务。以下是两种常见的设置步骤: 1. **使用Automator**: - 打开Finder,然后转到“应用程序” > “实用工具” > “Automator”。 - 选择“文件” > “新建”,选择“工作流程”模板,然后从左侧库选择需要的动作(如“运行AppleScript脚本”、“移动文件到”等)。 - 按照界面提示设置好时间、触发条件(如每天的特定时间)以及所需的操作。 - 完成后,将工作流程保存并命名为你需要的名称,比如“定时发送邮件”。然后在Spotlight搜索输入“Automator”启动它,选择你的工作流程即可。 2. **使用cron命令行** (适用于熟悉Linux终端用户): - 打开终端(Terminal)。 - 使用`crontab -e`编辑当前用户的cron配置文件。这会打开一个文本编辑器,如vim或nano。 - 在文件底部添加一个新的定时任务行,格式通常是这样的: ``` * * * * * /path/to/command ``` 其,第一列是分钟(0-59),第二列是小时(0-23),第三列是月份的日期(1-31),第四列是星期几(0-7,其0和7代表周日),第五列是你想要执行的命令路径。 - 保存并退出,新的定时任务就会按照你设定的时间开始执行。 记得在每次更改完成后,用`sudo crontab -u username -r`清除缓存,再重启计算机让新设置生效。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值