Masalahnya adalah saya ingin dapat melihat kesalahan saat memindahkan file, tetapi tidak melihat kesalahan dengan masalah izin. Dengan kata lain - Saya peduli jika file tidak sepenuhnya ditransmisikan, tetapi tidak ingin melihat kesalahan seperti ini:
mv: gagal mempertahankan kepemilikan untuk `/home/blah/backup/pgsql.tar.gz ': Operasi tidak diizinkan
Jadi saya ingin sesuatu seperti: mv $backupfile $destination --ignore-permissions
.
File cadangan dapat berupa apa saja dari 1 MiB hingga 5 GiB dan ditransfer melalui NFS.
cifs
).Jawaban:
mv
adalah alat yang salah untuk pekerjaan ini; Anda inginkancp
dan kemudianrm
. Karena Anda memindahkan file ke sistem file lain, inilah sebenarnya yangmv
dilakukan di balik layar, kecuali itumv
juga mencoba mempertahankan bit izin file dan informasi pemilik / grup. Ini karenamv
akan menjaga informasi tersebut jika memindahkan file dalam sistem file yang sama danmv
mencoba berperilaku yang sama dalam kedua situasi. Karena Anda tidak peduli dengan pelestarian bit izin file dan informasi pemilik / grup, jangan gunakan alat itu. Gunakancp --no-preserve=mode
danrm
sebagai gantinya.sumber
cp --no-preserve=mode,ownership $backupfile $destination
:, periksa kode keluar dan lakukanrm $backupfile
jika semuanya baik-baik saja.Saat Anda memindahkan file di dalam sistem file yang sama,
mv
lepaskan file dari lokasi sebelumnya dan lampirkan ke lokasi baru; metadata seperti izin tetap sama. Saat Anda memindahkan file ke sistem file yang berbeda,mv
menyalin file, mencoba mereplikasi sebanyak mungkin metadata, dan menghapus yang asli.Karena Anda pindah ke sistem file yang berbeda dan Anda tidak ingin mereplikasi banyak metadata, Anda mungkin juga menyalin file kemudian menghapus yang asli.
Ini mempertahankan izin file sampai batas tertentu (mis. Keterbacaan dunia, kemampuan eksekusi). Waktu modifikasi file tidak disimpan. Dengan GNU
cp
, Anda dapat menggunakan--preserve=…
opsi untuk mengontrol metadata apa yang direplikasi dengan lebih halus, misalnya--preserve=mode,timestamps
.Anda juga dapat menggunakan
rsync
dan memberi tahu apa yang ingin Anda pertahankan. Opsi ini-a
berarti “pertahankan sebagian besar metadata”, yang mencakup pemilik jika dijalankan sebagai root saja.sumber
rsync
solusi bekerja sangat baik. Saya telah berjuang keras untuk mentransfer instalasi ubuntu lama saya dari saham CIFS. Rsync saya tidak melaporkan kegagalan untuk memindahkan file, tetapi tidak memindahkannya dan hanya melaporkan masalah izin.rsync
solusi!