Saya memiliki akun seedbox yang saya gunakan untuk torrent. Saya telah menyiapkan tugas cron yang menggunakan rsync
untuk mengunduh semua file dari seedbox ke server ubuntu 14.04.1 saya. Folder unduhan adalah samba share, karena saya sebelumnya menggunakan windows untuk mengatur konten ke dalam folder sebelum memindahkannya ke tempat yang lebih permanen di server saya. Sebelum memutakhirkan ke 14,04, saya menggunakan 12,04 dan semuanya bekerja dengan baik.
Masalahnya adalah file yang saya dapatkan dari seedbox dimiliki oleh pengguna bernama "544" (ini adalah nama pengguna yang dihasilkan oleh seedbox, bukan sesuatu yang oktal) dan tidak dapat dihapus oleh pengguna saya di server saya. Setelah mengubah izin pada folder unduhan, saya dapat menghapusnya. Juga, saya telah memberikan izin kepada semua pengguna untuk membaca/menulis di folder samba setelah membagikannya.
Jadi pertanyaan saya adalah ini:Apakah mungkin melalui beberapa perintah elegan yang dijalankan untuk membuat rsync
ubah pengguna/izin pada file saat mengunduhnya? Atau mungkinkah membuat folder berfungsi sedemikian rupa sehingga semua file baru akan secara otomatis mengubah pengguna ketika disalin/dipindahkan ke sana? Saya kira saya bisa meletakkan chmod
perintah di sudo cron untuk dijalankan sesekali untuk mengubah pemilik file, tetapi karena kadang-kadang jumlah data yang akan diunduh bisa agak besar, sulit untuk mengetahui kapan harus memicunya sehubungan dengan rsync-job untuk memastikan semua file telah diunduh.
Jawaban yang Diterima:
rsync
hanya mempertahankan pemiliknya jika Anda memintanya dengan -o
— jika tidak, file akan dimiliki oleh pengguna yang menjalankan rsync
perintah, sama seperti ketika file lain dibuat. -a
termasuk -o
, namun, begitu banyak rsync
common yang umum baris perintah memasukkannya. man rsync
menyertakan bagian tentang ini secara eksplisit:
For example: if you want to use -a (--archive) but don’t want -o
(--owner), instead of converting -a into -rlptgD, you could
specify -a --no-o (or -a --no-owner).
Jadi, alih-alih rsync -a source dest
anda dapat menggunakan rsync -a --no-o source dest
agar file dimiliki oleh pengguna yang menjalankan perintah.
Di sisi lain, Anda biasanya hanya dapat mengubah pemilik file jika Anda melakukan root, jadi ini tidak banyak muncul. Jika perlu menjalankan tugas ini sebagai root karena alasan tertentu, dan Anda ingin file dimiliki oleh pengguna biasa Anda daripada root, Anda dapat menggunakan --chown
pilihan:
rsync -a --chown=youruser:yourgroup ...
Ada juga --usermap
opsi untuk pemetaan yang lebih rumit, jika Anda ingin mempertahankan beberapa pengguna. Dibutuhkan daftar from:to
yang dipisahkan koma berpasangan.
Sebagai opsi terakhir, karena Anda tampaknya menjalankan rsync
dari tugas cron, Anda cukup menambahkan operasi pemilik/pengubah izin ke tugas cron dengan && chown ...
.