Macを夜間に起動し、rsyncを実行してバックアップします。これは、[省エネ]> [スケジュール]で構成されます。
ただし、何かを実行する前にスリープ状態に戻っているようです。そのため、rsyncを実行するbashスクリプトの実行中にスリープ状態を停止する必要があります。
最善の方法は(可能であれば)、スリープタイムアウトを「なし」または非常に長いタイムアウトに設定してrsyncを実行し、完了したら通常に戻すコマンドを発行することです。これを行うためのより良い解決策はありますか?
例えば:
caffeinate -i rsync -avz someuser@somehost:somefolder /some/local/folder
マニュアルページから:
EXAMPLE
caffeinate -i make
caffeinate forks a process, execs "make" in it, and holds an
assertion that prevents idle sleep as long as that process
is running.
見る man caffeinate
詳細については。
caffeinate
コマンドを使用します。詳細については、 Nathan Longの回答 またはman caffeinate
を参照してください。
マニュアルページに埋もれていますが、pmsetには睡眠を防ぐための非常にシンプルなモードがあります。コマンドpmset noidle
を実行すると、そのプロセスが強制終了されるまでMacは起動したままになります。スクリプトで使用する方法は次のとおりです。
# launch process to prevent sleep and move it to the background
pmset noidle &
# save the process ID
PMSETPID=$!
... do stuff here ...
... don't fall asleep ...
... watch out for that tree!
... ok we're free and clear now ...
# kill pmset so the computer can sleep if it wants to
kill $PMSETPID
これは、pmsetを使用してスリープ設定を変更するよりも優れています。これには、rootアクセスが必要であり、(善良な市民になりたいと仮定して)現在の設定を検出し、完了したら元に戻す方法が必要です。
試してみてください
man pmset
:-)