ターゲット
・macOS Catalina 10.15.7
cronの準備
cronをフルディスクアクセスにする。
1.システム環境設定 > セキュリティとプライバシー > フルディスクアクセス を開く。
2.ロックを解除し、「+」ボタンをクリックする。
3.[⌘ command] + [shift] + [G]を押下し、「/usr/sbin/cron」へ移動する。
4.「cron」が選択されていることを確認し、「開く」をクリックする。
コピー用のスクリプトを作成
手元の環境では、「/Volumes/Cam1」を「/Volumes/Cam1_Backup」にコピーする。
スクリプトはこんな感じ(ファイル名は任意)。
cam1_backup.sh
#!/bin/zsh
echo `date`" Executed Cam1 backup."
/usr/bin/osascript -e 'display notification "Running Cam1 backup." with title "Start Cam1 Backup."'
cp -r -n /Volumes/Cam1/* /Volumes/Cam1_Backup
echo "Finished Cam1 backup."
/usr/bin/osascript -e 'display notification "Finished Cam1 backup." with title "Finished Cam1 Backup."'
echo "========================================================"
コードの説明 その1
以下のコードは、デスクトップに通知を出すコード。
/usr/bin/osascript -e 'display notification "Running Cam1 backup." with title "Start Cam1 Backup."'
コード説明 その2
コピーコマンドについて。
cp -r -n /Volumes/Cam1/* /Volumes/Cam1_Backup
#cp -r(再帰的に実行) -n(新しい項目のみコピー) /Volumes/Cam1/*(コピー元ディレクトリ) /Volumes/Cam1_Backup(コピー先ディレクトリ)
cronの設定
前項で作ったスクリプトを適当なディレクトリに保存。
今回は以下の場所に保存した。
/Users/masato/cam_backup1.sh
ターミナルを開いて「crontab -e」を入力しreturn
開いたエディタに以下を入力する。今回は毎日23時に実行する。
0 23 * * * /bin/zsh /Users/masato/cam1_backup.sh>>/Users/masato/cam1_backup.log
実行時にスクリプトのechoコマンドで出力した文字列を、/Users/masato/cam1_backup.logファイルに追加していく。
cam1_backup.logはこんな感じ。
cam1_backup.log
Tue Dec 22 23:00:00 JST 2020 Executed Cam1 backup.
Finished Cam1 backup.
========================================================
Wed Dec 23 23:00:00 JST 2020 Executed Cam1 backup.
Finished Cam1 backup.
========================================================
Thu Dec 24 23:00:00 JST 2020 Executed Cam1 backup.
Finished Cam1 backup.
========================================================
Fri Dec 25 23:00:00 JST 2020 Executed Cam1 backup.
Finished Cam1 backup.
========================================================
Sat Dec 26 23:00:00 JST 2020 Executed Cam1 backup.
Finished Cam1 backup.
========================================================
完成
これで定期実行されるバックアップの設定ができた。