GNU/Linux >> Linux の 問題 >  >> Linux

Mac OS で Cron を使用して自作を更新する方法

Cron には PATH が定義されていません。常にコマンドをフル パス (おそらく /usr/local/bin/brew update) で呼び出すようにしてください。

これは、望ましくない/予期しないコマンドが実行されないようにするための良い方法と考えられています。誰かが「brew」という悪意のあるスクリプトをパスの別の場所に置いた場合、/usr/local/bin の前に代わりに呼び出されます。


cronjob は良いオプションですが、私はそれを自動的に実行したくありませんでした。 Mac にインストールされている式の新しいバージョンが利用可能になった場合に通知するスクリプトを見つけました。

スクリプトを拡張して、ピン留めされた数式をノーティファイアーに表示しないようにしました。

cronjb には launchd-agent を使用することにしました。これは後で Mac を起動した場合にも実行されるためです。 cron ジョブは、その時点で Mac がすでにオンになっている場合にのみ実行されます。

cronjob と launchd の比較については、こちらをお読みになることをお勧めします。

これは、毎日午前 10 時と午後 3 時に実行する構成です。エージェントによって呼び出されるスクリプトは、/usr/local/bin/homebrew-update-notifier にあります。 .

<?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>EnableGlobbing</key>
    <false/>
    <key>Label</key>
    <string>homebrew.simonsimcity.update-notifier</string>
    <key>ProgramArguments</key>
    <array>
        <string>/bin/bash</string>
        <string>/usr/local/bin/homebrew-update-notifier</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>StandardErrorPath</key>
    <string>/tmp/homebrew.simonsimcity.update-notifier.err</string>
    <key>StandardOutPath</key>
    <string>/tmp/homebrew.simonsimcity.update-notifier.out</string>
    <key>StartCalendarInterval</key>
    <array>
        <dict>
            <key>Hour</key>
            <integer>10</integer>
            <key>Minute</key>
            <integer>0</integer>
        </dict>
        <dict>
            <key>Hour</key>
            <integer>15</integer>
            <key>Minute</key>
            <integer>0</integer>
        </dict>
    </array>
</dict>
</plist>

新しいアップデートが利用可能になった場合に通知されるようになりました。 brew upgrade に電話する 時代遅れだと感じた場合、またはスクリプトに含めてください。


Linux
  1. PleskでSSHキーを使用する方法

  2. SSHキーペアを生成する方法(例付き)

  3. Linuxは複数の連続したパスセパレーター(/ home //// username /// file)をどのように処理しますか?

  1. ショートカットキーで最後のターミナルウィンドウを表示するにはどうすればよいですか?

  2. OpenSSLを使用して証明書署名要求(CSR)を生成する方法は?

  3. パスフレーズの代わりに秘密鍵を使用して ecryptfs ファイルを復号化する方法

  1. cPanelを使用してサードパーティのSSL証明書をインストールする方法

  2. SSHキーを設定する方法

  3. マルチホップSshトンネルでSsh-copy-idを使用する方法は?