macOS でスクリプトを実行するようにスケジュールするには、`at` をどのように使用すればよいですか?

macOS でスクリプトを実行するようにスケジュールするには、`at` をどのように使用すればよいですか?

別のスクリプトの実行後、特定の時間に実行する必要がある Python スクリプトを作成しました。コマンドを見つけat、少し調べた後、次のことを試しました (読みやすくするために複数行に分割しています)。

/private/var/folders/w9/6q0rjl6n4yv859fpxbg4123w0000gn/T/S10/fm-git.py
--filename chiv-lib --repository /Users/chuck/Projects/chivalry/chiv-lib/
--path Chivalry/ --comment "test" | at 2:52pm

これでスクリプトはすぐに実行されました。

at 2:53pm
> /private/var/folders/w9/6q0rjl6n4yv859fpxbg4123w0000gn/T/S10/fm-git.py
> --filename chiv-lib --repository /Users/chuck/Projects/chivalry/chiv-lib/
> --path Chivalry/ --comment "test"
> ^D

しかし、時間が経過してもスクリプトは実行されませんでした。上記の後、at -l次のように出力されます。

13  Mon Nov 27 02:53:00 2017
12  Mon Nov 27 14:52:00 2017

これは macOS High Sierra 上のものです。atこれに適したユーティリティはありますか? もしそうなら、ここで私が望むことを実行するにはどうすればよいですか?

答え1

見てみましょう、Mac OS X(このハードウェアはmacOSを実行するには古すぎるため)とmyat日付の形式が何であるかを思い出せないからですat...

$ date
domingo, 26 de noviembre de 2017, 16:34:12 PST
$ myat 16:36
touch $HOME/nananananananananananananananana-atran
job 2 at Sun Nov 26 16:36:00 2017
$ atq
1       Wed Mar  9 08:00:00 2016
2       Sun Nov 26 16:36:00 2017
$ 

...なぜ2016年の仕事が残っているのでしょうか?

$ date
domingo, 26 de noviembre de 2017, 16:36:33 PST
$ atq
1       Wed Mar  9 08:00:00 2016
2       Sun Nov 26 16:36:00 2017
$ 

うーん... の man ページがat役に立つかもしれませんね?

IMPLEMENTATION NOTES
     Note that at is implemented through the launchd(8) daemon periodically
     invoking atrun(8), which is disabled by default.  See atrun(8) for infor-
     mation about enabling atrun.

一方、atrun(8)私たちは...

 Execute the following command as root to enable atrun:
       launchctl load -w
       /System/Library/LaunchDaemons/com.apple.atrun.plist

まあ。それを試してみましょう...

$ sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.atrun.plist

そして、1、2分ほど待ちます...

$ atq
$ ls *atran
nananananananananananananananana-atran
$ 

電源を入れると見栄えが良くなります (警告: バッテリーまたは貴重な CPU スライスが消耗する可能性があります...)

関連情報