Berkat komentar-posternya, saya bisa menyelesaikan masalah ini. Ini adalah versi yang diedit dari jawaban saya sebelumnya karena ternyata tidak cukup sama sekali dan menimbulkan lebih banyak pertanyaan daripada yang dijawab.
Jadi di sini saya mencoba menggambarkan setiap masalah yang menyebabkan masalah itu sendiri dan bagaimana saya menyelesaikannya.
Percobaan # 1: - mv
Sintaks yang salah ?
Dari skrip, baris berikut tidak melakukan apa pun:
find "/var/www/analysis_xyz/" -name '*log.gz' -exec mv -f {} "/media/pi/MOBIDICDATA" \;
Saya tidak yakin apakah saya bisa menggunakan parameter standar mv
saat memanggilnya dari -exec
, tetapi saya menambahkan -f
parameter untuk menimpa file yang ada di direktori target.
Dengan menambahkan set -x
ke skrip seperti yang disarankan, itu memberi saya pesan kesalahan kembali mengatakan ada yang salah dengan argumen mv
perintah. Jadi saya menghapus -f
parameternya. Tanpa keberhasilan. Setelah googling sedikit lebih jauh dan melihat beberapa contoh yang semuanya menggunakan -t
parameter, jadi saya menambahkannya. Sekali lagi, tidak berhasil, sebaliknya saya mendapat pesan kesalahan yang mengatakan, bahwa sebuah direktori diharapkan yang saya artikan salah (maaf, sedikit noob tentang skrip shell). Saat ini saya memiliki sintaks berikut, yang ternyata kemudian benar-benar benar dan berfungsi:
find /var/www/analysis_xyz/ -name '*log.gz' -exec mv {} -t /media/pi/MOBIDICDATA \;
(perhatikan yang dipindahkan {}
). Tapi saat ini masalah tersebut masih belum terselesaikan dan saya bahkan tidak yakin apakah -f
dan -t
yang bagian itu.
Percobaan # 2: - Apakah saya mencoba menulis ke USB-stick yang terpasang hanya baca?
Seperti yang mungkin telah Anda perhatikan, folder targetnya adalah /media/pi/…
Jadi Anda mungkin sadar bahwa saya menggunakan Raspberry Pi dan saya menggunakan Raspbian. Stik USB yang saya inginkan untuk menulis data di-mount secara otomatis ke folder ini (selama perangkat dinamai MOBIDICDATA
. Mount otomatis memasang perangkat sebagai read-only (dan pada saat ini saya tidak tahu mengapa). proses yang akan dieksekusi, tetapi tidak ada file yang disalin dan pesan kesalahan muncul mengatakan perangkat itu hanya-baca.
Saya memutuskan untuk tidak mengandalkan pemasangan otomatis dan pemasangan perangkat sendiri saat reboot ke lokasi lain. Target baru adalah /mobidicdata
. Perangkat berhasil dipasang, tetapi masih hanya untuk alasan tertentu.
Mencoba # 3: - Apakah hidup singkat untuk menghapus USB dengan aman?
Di masa lalu saya benar-benar membunuh 2 perangkat USB dengan menghapusnya dengan aman dari PC windows jadi saya memutuskan untuk tidak melakukan ini lagi, karena saya tidak pernah membunuh perangkat dengan hanya menariknya keluar. Sedikit yang saya tahu bahwa misalnya USB stick, yang hanya ditarik keluar selalu dipasang sebagai read-only pada sebagian besar sistem non-Windows; yang masuk akal karena sistem file mungkin rusak dan menyebabkan masalah lain. Setelah mengetahui hal ini, saya melepas perangkat USB dengan aman, memasangnya, dan sekarang r / w.
Jadi, uji lagi dengan perangkat yang dapat ditulis dan sintaks berikut:
find /var/www/analysis_xyz/ -name '*log.gz' -exec mv {} -t /mobidicdata \;
... yang berhasil.
Bagi saya ini sedikit Odysee.
Ringkasan
Ya, parameter -t
/ -f
itu bukan masalah seperti yang disebutkan sebelumnya. Itu lebih dari multi-masalah-cluster yang seharusnya saya jelaskan secara lebih rinci sebelumnya.
Saya berharap dapat menjelaskan semuanya dan apa yang saya tahu mulai sekarang dan akan dilakukan di masa depan:
- Anda harus menghapus USB dengan aman
Sayangnya saya tidak dapat sepenuhnya mereproduksi masalah di atas. Dalam hal ini saya bisa menyatakan pesan kesalahan yang tepat. Tetapi saya masih berpikir bahwa ini memberikan sedikit lebih banyak wawasan tentang apa yang terjadi dan apa yang dilakukan.