我正在尋找如何在特定時間打開網站的解決方案。考慮到shell編程,可以通過命令來打開網站:如何在特定時刻使用shell打開網站?
$ open http://stackoverflow.com
如何在某一時刻做,如果有可能呢?
我正在尋找如何在特定時間打開網站的解決方案。考慮到shell編程,可以通過命令來打開網站:如何在特定時刻使用shell打開網站?
$ open http://stackoverflow.com
如何在某一時刻做,如果有可能呢?
您可以使用crontab
來製作它。
crontab是您希望在常規日程表 上運行的命令的列表,以及用於管理該列表的命令的名稱。
crontab代表「cron table」,因爲它使用作業調度程序 cron來執行任務; cron本身是以「chronos」的名字命名的,希臘文 這個詞的時間。
說你有一個腳本/bin/openURL.sh
打開一個網站,
30 21* * * /bin/OpenURL.sh
意味着執行它21:30每一天。
更多使用約crontab
,看到http://www.computerhope.com/unix/ucrontab.htm
對於一次性工作(計劃任務),at
命令簡單安排,通過John1024的自刪除的答案證明,但at
has OSX上的缺點:
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.atrun.plist
。sudo
(具有管理權限)才能使用at
安排作業。mail
作爲stdout和stderr輸出(我不知道如何抑制這個)。sudo bash -c 'echo "open http://stackoverflow.com" | at 19:00'
使用crontab
爲週期性作業是一個選項o OSX;例如,以安排在每天19:00(7點)打開http://stackoverflow.com工作:
crontab -e
在編輯器中打開當前用戶的cronfile。0 19 * * * open http://stackoverflow.com
mail
郵寄給用戶,如結合stdout和標準輸出(我不知道如何壓制這個)。然而,在OSX的官方建議是使用launchd
兩個一次性和週期性工作:
launchd
非常靈活和集中了所有的作業調度;與crontab
一樣,系統範圍和每個用戶都有作業。.plist
文件是繁瑣和不平凡的創建。使用我們前面的例子:
一次性作業:(打開http://stackoverflow.com一次,在19:00(下午7點))
~/test.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>TestJob</string>
<key>ProgramArguments</key>
<array>
<string>open</string>
<string>http://stackoverflow.com</string>
</array>
<key>LaunchOnlyOnce</key>
<true/>
<key>StartCalendarInterval</key>
<dict>
<key>Hour</key>
<integer>19</integer>
<key>Minute</key>
<integer>00</integer>
</dict>
</dict>
</plist>
TestJob
唯一標識你的工作。LaunchOnlyOnce
到true
確保作業只運行一次。launchctl load ~/test.plist
加載作業。定期工作:(每天開放http://stackoverflow.com19:00(7點))
~/Library/LaunchAgents/testPeriodic.plist
~/Library/LaunchAgents
是哪裏每個用戶的作業定義*.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>TestJobPeriodic</string>
<key>ProgramArguments</key>
<array>
<string>open</string>
<string>http://stackoverflow.com</string>
</array>
<key>StartCalendarInterval</key>
<dict>
<key>Hour</key>
<integer>19</integer>
<key>Minute</key>
<integer>00</integer>
</dict>
</dict>
</plist>
TestJobPeriodic
唯一標識你的工作。LaunchOnlyOnce
使作業定期)。launchctl load ~/Library/LaunchAgents/testPeriodic.plist
加載作業。有關背景信息,請參閱https://stackoverflow.com/a/23880156/45375。