I have two machines, "sender" and "receiver".

Sender runs the following command each night:

zfs send -i bpool/backups@2018-09-04 bpool/backups@2018-09-05 | ssh receiver /sbin/zfs receive bpool/backups

The sends the latest of bpool/backups from sender to receiver. (Dates are automatically generated each night.)

If someone (on receiver) does as little as:

cd /bpool/backups

it breaks the nightly backup job, with the following error:

root@sender:~# zfs send -i bpool/backups@2018-09-04 bpool/backups@2018-09-05 | ssh recevier /sbin/zfs receive bpool/backups
cannot receive incremental stream: destination bpool/backups has been modified
since most recent snapshot
warning: cannot send 'bpool/backups@2018-09-04': Broken pipe

(I assume this is because of updated atimes, or similar.)

How can I stop this from happening? (If I made receiver:/bpool/backups read-only how would the receive work?)


zfs recv -F will force the receiving dataset to roll back to the previous received snapshot. Turning off atime will only address the issue of people examining the files on the backup, but if there are any other changes, you'll want to use the -F flag instead.


Turning off access time update should be enough:

zfs set atime=off bpool/backup
  • Does the receiving dataset even have to be mounted? – Andrew Henle Sep 6 '18 at 14:20

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.