description: "auto-sync launchd管理。dotfiles自動同期の状態確認・起動・停止・ログ確認。トリガー: launchd, auto-sync, 自動同期, 同期, sync agent" allowed-tools:
- Bash
- Read
- Grep
launchd-manage スキル
dotfiles自動同期のlaunchdエージェント管理を行う。
概要
auto-syncは毎時dotfilesの変更をGitHubに自動同期するlaunchdエージェント。
- plistファイル:
~/Library/LaunchAgents/com.user.dotfiles-sync.plist - 実行スクリプト:
/Users/snkrheadz/ghq/github.com/snkrheadz/laptop/scripts/auto-sync.sh - ログファイル:
~/Library/Logs/dotfiles-sync.log - 実行間隔: 3600秒(1時間)
コマンド
エージェント状態確認
launchctl list | grep dotfiles
plistファイル確認
cat ~/Library/LaunchAgents/com.user.dotfiles-sync.plist
自動同期スクリプト確認
cat /Users/snkrheadz/ghq/github.com/snkrheadz/laptop/scripts/auto-sync.sh
ログ確認
cat ~/Library/Logs/dotfiles-sync.log | tail -50
最新のログエントリ
tail -20 ~/Library/Logs/dotfiles-sync.log
エージェント停止
launchctl unload ~/Library/LaunchAgents/com.user.dotfiles-sync.plist
エージェント起動
launchctl load ~/Library/LaunchAgents/com.user.dotfiles-sync.plist
エージェント再起動
launchctl unload ~/Library/LaunchAgents/com.user.dotfiles-sync.plist && \
launchctl load ~/Library/LaunchAgents/com.user.dotfiles-sync.plist
手動で同期実行
/Users/snkrheadz/ghq/github.com/snkrheadz/laptop/scripts/auto-sync.sh
plistのシンタックスチェック
plutil -lint ~/Library/LaunchAgents/com.user.dotfiles-sync.plist
plistファイル構造
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "...">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.user.dotfiles-sync</string>
<key>ProgramArguments</key>
<array>
<string>/path/to/auto-sync.sh</string>
</array>
<key>StartInterval</key>
<integer>3600</integer>
<key>StandardOutPath</key>
<string>~/Library/Logs/dotfiles-sync.log</string>
<key>StandardErrorPath</key>
<string>~/Library/Logs/dotfiles-sync.log</string>
</dict>
</plist>
実行フロー
状態確認
- launchdエージェントの稼働状態確認
- plistファイルの存在確認
- 最新のログエントリを表示
トラブルシューティング
- エージェント状態確認
- ログを確認して最後の実行結果を調査
- 手動実行でスクリプトの動作確認
- 必要に応じてエージェント再起動
使用例
- "auto-syncの状態を確認"
- "自動同期のログを見せて"
- "auto-syncを再起動"
- "自動同期を一時停止"
- "手動で同期を実行"
auto-sync.shの動作
- dotfilesディレクトリに移動
brew bundle dump --forceでBrewfile更新git add -Aで変更をステージ- 変更がある場合のみコミット
- リモートにプッシュ
注意事項
- エージェント停止中は自動同期されない
- 手動同期は
scripts/auto-sync.shで実行可能 - ログが肥大化したら手動で削除可能
- ネットワーク接続がない場合、プッシュは失敗する(次回実行時に再試行)
Related skills
Docker Compose Architect
DevOps
Designs optimized Docker Compose configurations.
Claude CodeCopilotadvanced
430
156
1,409
Incident Postmortem Writer
DevOps
Writes structured and blameless incident postmortem reports.
claudeCursorWindsurfintermediate
141
43
427
Runbook Creator
DevOps
Creates clear operational runbooks for common DevOps procedures.
claudeCursorWindsurfintermediate
108
32
350