環境
MacOS Ventura バージョン13.3
対象
MacOSでコマンドを定期実行させたい人!
Zoom meetingを起動するシェルの書き方
シェルスクリプト(night_meeting.sh
)の中身
/usr/bin/open "zoommtg://zoom.us/join?confno=会議ID&pwd=パスワード"
コマンドは絶対パスで指定してください。定期実行するのにlaunchd
というmacOSデフォルトのアプリケーションを用いるのですが、launchd
は絶対パスで指定しないと実行できないからです。
シェルスクリプトに実行権限を付与
chmod +x /path/to/night_meeting.sh
ミーティングが起動するかテストする
/path/to/night_meeting.sh
定期的に自動起動する方法
~/Library/LaunchAgents
ディレクトリに.plistファイル(zoomscheduler.night_meeing.plist
)を書く。名前はテキトーで良いです。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<!-- ファイル名と一致させる -->
<string>zoomscheduler.night_meeting</string>
<key>ProgramArguments</key>
<array>
<string>/bin/sh</string>
<!-- 上で作成したシェルスクリプトへのパス -->
<string>/path/to/your/night_meeting.sh</string>
</array>
<key>StartCalendarInterval</key>
<dict>
<key>Weekday</key>
<!-- 日曜は0, 月曜は1, ..., 土曜は6 -->
<integer>2</integer>
<key>Hour</key>
<!-- 24時間表示 -->
<integer>18</integer>
<key>Minute</key>
<integer>59</integer>
</dict>
<key>StandardOutPath</key>
<string>/path/to/logs/night_meeting.log</string>
<key>StandardErrorPath</key>
<string>/path/to/logs/night_meeting_error.log</string>
</dict>
</plist>
エラーログは/path/to/logs/night_meeting_error.log
に書き込まれます。
1時間ごとに実行する等の命令もできます。
https://qiita.com/rsahara/items/7d37a4cb6c73329d4683
シェルにフルディスクアクセスの権限を追加する
/bin/sh
と/usr/bin/open
がlaunchdの起動に従って呼び出されます。これをMacのセキュリティの設定で、これを実行する許可がデフォルトでは与えられていないので、「画面左上の🍏 -> システム設定 -> プライバシーとセキュリティ -> フルディスクアクセス」と移動して、下に表示される+ボタンを押して/bin/sh
と/usr/bin/open
を選択し、フルディスクアクセスの権限を与えます。
新しく作成したlaunchdジョブを読み込む
launchctl load ~/Library/LaunchAgents/zoomscheduler.night_meeting.plist
テストする
launchctl start ~/Library/LaunchAgents/zoomscheduler.night_meeting.plist
これでzoomが起動すれば成功です。
時間帯等を変更したい場合
- アンロードする
launchctl unload ~/Library/LaunchAgents/zoomscheduler.night_meeting.plist
-
.plist
ファイルを編集 - ロードする
launchctl load ~/Library/LaunchAgents/zoomscheduler.night_meeting.plist