# [メタ情報] # 識別子: ITスクリプト管理フォルダをGoogleDriveへ一方向同期する_exe # 補足: # [/メタ情報] 要約: この設定は、Mac mini M1上の「ITスクリプト管理」ディレクトリの内容を、外部SSD上のGoogle Driveにある同名ディレクトリへ一方向同期する自動化システムです。`m1_hqsync.sh`スクリプトは、rsyncコマンドを使用し、本体のディレクトリ(本尊)から外部SSDのディレクトリへ、属性を維持しつつ差分更新と削除反映を行うミラーリングを実行します。同期完了時には「本社(GoogleDrive)への一方向同期が完了しました。」と報告します。`com.XXXXXX.hqsync.plist`ファイルは、macOSのLaunch Agentとしてこのスクリプトを登録する設定です。これにより、監視対象の「ITスクリプト管理」ディレクトリに変更があった際、`m1_hqsync.sh`が自動実行されるようになります。スクリプトの標準出力とエラー出力は、それぞれ`/tmp/hqsync.log`と`/tmp/hqsync_error.log`に記録されます。これにより、重要なスクリプトファイルの確実なバックアップと管理が実現されます。 /Users/XXXXXX/scripts/m1_hqsync.sh ``` #!/bin/bash # ===== 1. 金庫(.env)のロードとMeister 1 / 2 の環境差を自動吸収 ===== if [ -f "$HOME/python_scripts/.env" ]; then export $(grep -v '^#' "$HOME/python_scripts/.env" | xargs) fi # 同期元(本尊は常にホーム直下のITスクリプト管理) SOURCE_DIR="$HOME/ITスクリプト管理/" # 同期先(金庫に指定があればそちらを優先、なければデフォルトにフォールバック) DEST_DIR="${IT_SCRIPT_GD_SYNC_DEST:-/Volumes/NO4_SSD/GoogleDrive/ITスクリプト管理/}" # ===== 2. rsyncによる安全な一方向(ホワイトリスト)同期 ===== # --delete-excluded を加えることで、Drive側にある「許可外のファイル」を強制削除します # ※Homebrewの rsync パスを動的に特定 if [ -x /opt/homebrew/bin/rsync ]; then RSYNC="/opt/homebrew/bin/rsync" else RSYNC="/usr/bin/rsync" fi "$RSYNC" -auv --delete --delete-excluded --include='*/' --include='*.py' --include='*.sh' --include='*.applescript' --include='*.txt' --include='*.md' --include='*.json' --include='*.csv' --include='*.plist' --exclude='*' "$SOURCE_DIR" "$DEST_DIR" echo "------------------------------------------" echo "【報告】不要な過去ファイルを一掃し、本社の純浄化同期を完了しました。" echo "------------------------------------------" ``` ~/Library/LaunchAgents/com.XXXXXX.hqsync.plist ``` Label com.XXXXXX.hqsync ProgramArguments /bin/bash /Users/XXXXXX/scripts/m1_hqsync.sh WatchPaths /Users/XXXXXX/ITスクリプト管理/ StandardOutPath /tmp/hqsync.log StandardErrorPath /tmp/hqsync_error.log ```