V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  wuyadaxian  ›  全部回复第 3 页 / 共 7 页
回复总数  129
1  2  3  4  5  6  7  
@baoshijiagong 因为之前查了资料,有系统环境差异。
比如#51 楼提到的,macOS 下 crontab 和 linux 下 crontab 就可能会不一样。
而且有些特别的 arm 芯片上的特定版本 os 下的 crontab 也可能有差异。
我考虑的是尽可能说出相关环境,用于实践测试。
@brant2ai #88 估计和平台有关 。
#51 楼我找到一个文章,声称使用 macOS 可以这么运行。
但是没有发现 linux 平台下的案例。
@brant2ai 如果你那边服务器可以运行,请告诉我以下你服务器的系统和版本号。我去装一个测试下,看是不是只有 ubuntu 不行。
@brant2ai 同时,直接在窗口运行 [[ $(($(date +'%s / 60 % 1 '))) -eq 0 ]] && /etc/test.sh
是没问题的,因为左边部分永远为真,右边始终会执行。
@brant2ai 见楼上,我已经正确赋予了用户对 test.sh 的读写运行权限。
另外如果我改为* * * * * /etc/test.sh 是可以正常每分钟运行的。
* * * * * [[ $(($(date +'%s / 60 % 1 '))) -eq 0 ]] && /etc/test.sh
我将%7 改为%1 ,这样理论上每分钟就会运行一次 test.sh 。但是没有运行
@brant2ai 我也可以直接在 tty 中使用这行 command ,但是 cron 里面不会运行
@brant2ai 同样,在 cron 里面* * * * * [[ $(($(date +'%s / 60 % 7 '))) -eq 0 ]] && command 。 [无法运行] ------在 tty 内,[[ $(($(date +'%s / 60 % 7 '))) -eq 0 ]] && command 。 [正常运行]
@brant2ai 另外这个算没用 cron 了吧。
@brant2ai 你可以看看 45 楼和 51 楼,我不确定是不是我环境或者什么问题,在 ubuntu 下无法执行。
@brant2ai bash: syntax error near unexpected token `(' 是我的环境问题吗
@brant2ai 我试试
@brant2ai 要操作外部脚本啊,那就不在讨论范围了。都能用外部脚本了,方法就多了,楼上很多。
@brant2ai 复写的时候是哪段代码或什么外部程序或者谁(真人)来进行。
@mohumohu 我找到一篇文章,https://href.lu/15A 。此文章表示在 macOS 中成功使用了复杂的 command 。但是我在我现在的 linux ubuntu 下没有运行成功。不知道是不是哪里错了,比如需要用引号之类的。
@yankebupt 见 33 ,34 楼,只需要 49 条,还可以设置偏移量。
@lolizeppelin 每隔 7 分钟,执行一次 test 脚本,不管 test 脚本之后的状态。
@mohumohu 我尝试 * * * * * ((($(date +%s) / 60 % 7 == 0)) && /etc/test.sh) 并 [没有运行] 。我已经确认用户拥有 test.sh 的读写运行权限。另外我直接在 tty 里面输入((($(date +%s) / 60 % 7 == 0)) && /etc/test.sh)是 [可以运行] 的。
@mohumohu 后面 command 部分能接这种复杂的命令集吗?我尝试了下 cron 没运行(不知道是不是我的问题),但是直接输入后面的 command 是可以运行的。
@Puteulanus 我们只需要每天穷举 7 条 cron ,每周 7 天穷举 49 条 cron 就能实现。如果需要增加偏移量,只需要更改周的位置即可。
1  2  3  4  5  6  7  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1300 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 12ms · UTC 17:18 · PVG 01:18 · LAX 09:18 · JFK 12:18
Developed with CodeLauncher
♥ Do have faith in what you're doing.