JenkinsからMacOS Xのディスクユーティリティを実行する
JenkinsからWindowsのクリーンアップ処理を実行する方法を自慢していたら、MacOS X版はどうなっているのか?と突っ込まれたので作ってみた。と言っても、ディスクユーティリティのコマンドを呼び出すだけなので、ジョブとしては下記を呼び出すだけで良い。(Jenkinsは自分のアカウントで実行中)
diskutil repairPermissions / diskutil verifyVolume /
実際の動作結果はこちら。
[workspace] $ /bin/sh -xe /var/folders/96/t8w4shd534134j2rgh1v0xh80000gn/T/hudson2673336148555595932.sh + diskutil repairPermissions / Started verify/repair permissions on disk0s2 Macintosh_HD Finished verify/repair permissions on disk0s2 Macintosh_HD + diskutil verifyVolume / Started file system verification on disk0s2 Macintosh_HD Checking file system Performing live verification Checking Journaled HFS Plus volume Checking extents overflow file Checking catalog file Incorrect block count for file svn_2013-01-12_08-47-55.svn.gz (It should be 7440 instead of 95941) Checking multi-linked files Checking catalog hierarchy Checking extended attributes file Checking volume bitmap Volume bitmap needs minor repair for orphaned blocks Checking volume information Invalid volume free block count (It should be 25973221 instead of 25884720) The volume Macintosh_HD was found corrupt and needs to be repaired Error: -69845: File system verify or repair failed Underlying error: 8: POSIX reports: Exec format error Build step '??????' marked build as failure Finished: FAILURE
いきなり問題が見つかったので少々焦る。手動操作でディスクを修復した後、再実行させたらもちろん問題は見つからなくなった。
[workspace] $ /bin/sh -xe /var/folders/96/t8w4shd534134j2rgh1v0xh80000gn/T/hudson8121348645267259492.sh + diskutil repairPermissions / Started verify/repair permissions on disk0s2 Macintosh_HD Finished verify/repair permissions on disk0s2 Macintosh_HD + diskutil verifyVolume / Started file system verification on disk0s2 Macintosh_HD Checking file system Performing live verification Checking Journaled HFS Plus volume Checking extents overflow file Checking catalog file Checking multi-linked files Checking catalog hierarchy Checking extended attributes file Checking volume bitmap Checking volume information The volume Macintosh_HD appears to be OK Finished file system verification on disk0s2 Macintosh_HD Finished: SUCCESS
前回、ディスクユーティリティを実行したのはいつだっけ?と忘れがちな人にはお勧めなジョブかも知れない。