ZFSスクリプトは最新のスナップショットを取得して復元します。

ZFSスクリプトは最新のスナップショットを取得して復元します。

zfsスナップショットバックアップを維持し、VMが直接場所でzfs/snapshotbackps実行されています。zfs

最新のスナップショットを抽出して復元するスクリプトを作成しようとしています。

私は次を試しました

machine=582
zfs list -o name -s creation -t snapshot | grep "zfs/snapshotbackps/vm-${machine}-" |tail -n1 | xargs zfs send | "zfs receive zfs/vm-${machine}-disk-0"

これは返されます

-bash: zfs receive zfs/vm-582-disk-0: No such file or directory
xargs: zfs: terminated by signal 13

問題が発生しました。データがあります。

zfs list -o name -s creation -t snapshot | grep "zfs/snapshotbackps/vm-${machine}-" |tail -n1
zfs/snapshotbackps/vm-582-disk-0@ZAP_HOME1_2023-05-19T10:26:19p0100--1w

答え1

あなたの見積もりに欠陥があります。次のようにしてみてください。

machine="582"
snap="$(zfs list -o name -s creation -t snapshot |
   grep "zfs/snapshotbackps/vm-${machine}-" |
   tail -n1)"
zfs send "$snap" | zfs receive "zfs/vm-${machine}-disk-0"

を削除すると表示されるzfs receiveエラーメッセージは、次のように入力したときに表示されるエラーメッセージと同じです。

$ "echo foo"
bash: echo foo: command not found

zfs rollbackネイティブファイルシステムで作業することも検討できますzfs/vm-582-disk-0。より速くなければなりません。

関連情報