7
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

cronでpmsetを複数登録する

Posted at

以前seleniumでchrome自動操作を定期的に行う処理をしたいたが、macのシステム環境設定からのスケジュール設定数には限界があることを知りこの機会にまとめておく。

問題点

スクリーンショット 2019-10-12 23.18.38.png 見ればわかるが起床またはスリープ解除はそもそも1つしか設定できない。

解決策

調べたらmacでは電源の操作をpmsetで行うらしい。
簡単な例文は下記になる

# 現在設定されているスケジュール確認
pmset -g sched

# 1回のみ実行.以下は起動させる場合
# ほかに sleep, wake, shutdown, wakeorpoweron がある.
sudo pmset schedule poweron "10/20/11 18:00|00"

# 繰り返し実行.曜日は MTWRFSU の部分集合で記述する
sudo pmset repeat shutdown RF 07:50:00

GUIじゃ最大2個のスケジュールしか登録できないが、pmsetとcronをうまく組み合わせれば実際何個でもスケジュールを登録できる!

注意する点

これでうまく行くかと思いきや、cronでpmsetが起動しなかった。
エラー文にはpmsetってそもそもroot権限でしか作動しないらしい。
なのでsudoのcrontabでスケジュールやらを設定する。

# rootにログイン
sudo su

# rootとしてcronを書く
crontab -e

実際に書いてみよう

例文は下記になる。

0 1 * * * /path/to/script1
1 1 * * * pmset repeat shutdown MTWRFSU 01:02:00 wakeorpoweron MTWRFSU 02:59:00

0 3 * * * /path/to/script2
1 3 * * * pmset repeat shutdown MTWRFSU 03:02:00 wakeorpoweron MTWRFSU 00:59:00

これを解釈すると

  1. 01:00にscript1を実行する
  2. 01:02にパソコンをシャットダウンさせることと、02:59にパソコンを起動させるスケジュールを01:01に登録する
  3. 02:59にパソコンが起動する
  4. 03:00にscript2を実行する
  5. 03:02にパソコンをシャットダウンさせることと、翌日00:59にパソコンを起動させるスケジュールを03:01に登録することで原点に戻る

上記の原理でいくらでも定期的な命令を実行できるわけだ!
素晴らしい!以上!

参考になったサイト

https://apple.stackexchange.com/questions/56635/schedule-multiple-wake-up-times-for-mac
http://kapibara3kapibara3.blogspot.com/2019/03/pmsetmac.html

7
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?