ロックによりファイルアクセスがブロックされました。削除する方法は?

ロックによりファイルアクセスがブロックされました。削除する方法は?

作成されたバックアップストアの1つで、バックアッププログラム「restic」の「検査」機能を実行しようとしています。私が何をしても、致命的な「ロック」問題が原因でクラッシュします。関連するコマンドラインI/Oは次のとおりです。

tomc@ANB:~/programs/restic-backup$ ./restic check -r
/media/tomc/usbhd4-p2/_restic-bkup/dropbox using temporary cache in /tmp/restic-check-cache-405001323 
enter password for repository:
repository fd5c0b03 opened successfully, password is correct 
created new cache in /tmp/restic-check-cache-405001323 
create exclusive lock for repository 
Fatal: unable to create lock in backend: repository is already locked by PID 30546 on ANB by tomc (UID 1000, GID 1000) 
lock was created at 2019-10-07 14:49:41 (509h0m19.239359465s ago) storage ID 0fe63838 

この問題を解決するにはどうすればよいですか?

ベストアンサー1

repository is already locked by PID 30546 on ANB by tomc

ps -fp 30546まず、リポジトリをロックしたプロセスがまだ存在することを確認する必要があります。エラーメッセージによれば、ロックはすでに509hであるため、プロセスが中断される可能性があります。あるいは、プロセスが存在しないか、まったく関連がないように見える場合は、古いロックファイルである可能性があります。

PID 30546を持つプロセスが関連性があると思われる場合は、それを使用してどのファイルがlsof -p 30546開いているかを確認できます。幸い、ファイルの1つは、プロセスの状態に関する追加情報を提供できるログファイルです。中断が安全に見える場合は、kill 30546比較的スムーズに中断して、シャットダウン時にロックファイルをクリーンアップする機会を提供できます。

プロセスがコマンドを使用してシャットダウンを拒否した場合は、コマンドを使用してプロセスを強制的に停止できますが、kill 30546このkill -9 30546場合、ロックを解除するには追加の手順を実行する必要があります。

~によるとGitHubページの問題#1450restic、停止したプロセスを終了した後、このコマンドを使用して古いロックを消去できます。

./restic unlock -r /media/tomc/usbhd4-p2/_restic-bkup/dropbox 

停止したプロセスが一部のバックアップ操作を実行している場合は、次のコマンドを実行する必要があります。

./restic check -r /media/tomc/usbhd4-p2/_restic-bkup/dropbox 

# if the check returns "not referenced in any index" errors, then do this:
./restic rebuild-index -r /media/tomc/usbhd4-p2/_restic-bkup/dropbox 
./restic check -r /media/tomc/usbhd4-p2/_restic-bkup/dropbox 

# if there is still "not referenced in any index" errors, remove incomplete packs:
./restic prune -r /media/tomc/usbhd4-p2/_restic-bkup/dropbox 
./restic check -r /media/tomc/usbhd4-p2/_restic-bkup/dropbox 

その後、検査は正常に通過する必要があります。

おすすめ記事