Skrip shell untuk menyalin semua fail dengan struktur yang sama

Skrip shell untuk menyalin semua fail dengan struktur yang sama

Skrip shell ini direka untuk tugas tertentu yang diperlukan untuk pelayan kami. Jadi berkongsi skrip dengan pembaca Tecadmin. Mungkin berguna untuk anda.

Keperluan

Keperluan kami adalah untuk menyalin semua fail yang dibuat dalam direktori ke direktori lain dengan struktur direktori yang sama. Skrip akan berjalan secara berkala, cari semua fail yang dibuat dalam direktori sumber dan menyalinnya ke direktori destinasi. Skrip mesti mengekalkan struktur direktori yang sama di direktori destinasi. Selepas itu menukar kebenaran di direktori destinasi. Selepas salinan fail yang berjaya, skrip mesti mengeluarkan fail dari direktori sumber.

Skrip shell

Buat skrip shell pada sistem anda dan tambahkan kandungan di bawah. Kemas kini direktori sumber dan destinasi ke lokasi yang betul.

Tetapkan perubahan_ownership ke 0, jika anda tidak mahu menukar pemilikan pada fail destinasi.

#!/bin/Bash ################## Pembolehubah #####################################################. ##### ### Tetapkan sumber dan direktori destinasi yang betul lokasi sumber_dir = "/sumber/dir/" dest_dir = "/desination/dir/" tmp_file =/tmp/copyfileslist.TXT ### Tetapkan nama pengguna dan nama kumpulan untuk menetapkan kebenaran pada fail yang disalin ### set change_ownership kepada 1 untuk menukar pemilikan atau 0 untuk tidak berubah IT change_ownership = 1 user = "root" kumpulan = "root" ##### ##### Jangan edit di bawah ini sehingga diperlukan ##################ujian jika direktori sumber ada ### skrip akan berhenti jika sumber tidak wujud jika [ -d "$ source_dir"]; kemudian echo "direktori sumber dijumpai" lain echo "direktori sumber tidak dijumpai. Sila periksa pembolehubah di atas ditetapkan dengan betul "echo" skrip keluar "keluar 1 fi ### ujian jika direktori destinasi ada ### skrip akan membuat direktori destinasi jika tidak ada. ### Jika gagal membuat direktori, skrip akan ditamatkan jika [-d ​​"$ dest_dir"]; Kemudian echo "Direktori Destinasi Ditemui, All OK" Else Echo "Direktori Destinasi Tidak Ditemui, Mencipta Sekarang" Mkdir -P "$ Dest_dir" Jika [$? -eq 0]; kemudian echo "berjaya dicipta direktori destinasi."lain echo" gagal membuat direktori destinasi. Skrip Datang "Keluar 1 Fi Fi ### Salin Semua fail yang tersedia di Direktori Sumber ### setelah berjaya menyalin Fail Keluarkannya dari Direktori Sumber. CD "$ source_dir" jika [$? -eq 0]; kemudian cari . -taip f> $ tmp_file semasa baca current_file_name do cp --parents "$ current_file_name" "$ dest_dir" if [$? -eq 0]; kemudian echo "fail $ current_file_name berjaya disalin."rm -f" $ current_file_name "lain echo" fail $ current_file_name gagal menyalin "fi selesai < $TMP_FILE rm -f $TMP_FILE fi ## Set the permissions after copying files if [ $CHANGE_OWNERSHIP -eq 1 ]; then sudo chmod 775 -R "$DEST_DIR" sudo chown $USER:$GROUP -R "$DEST_DIR" fi ################### End of Script ###################################
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879#!/bin/Bash ################## Pembolehubah #####################################################. ##### ### Tetapkan sumber dan direktori destinasi yang betul lokasi sumber_dir = "/sumber/dir/" dest_dir = "/desination/dir/" tmp_file =/tmp/copyfileslist.txt ### Tetapkan nama pengguna dan nama kumpulan untuk menetapkan kebenaran pada fail yang disalin ### set change_ownership kepada 1 untuk menukar pemilikan atau 0 untuk tidak berubah ia change_ownership = 1user = 'root'group =' root '###### #### Jangan edit di bawah ini sehingga diperlukan ################## ujian jika direktori sumber ada ### skrip akan berhenti jika sumber tidak wujud jika [ - d "$ source_dir"]; kemudian echo "direktori sumber dijumpai" lain echo "direktori sumber tidak dijumpai. Sila periksa pembolehubah di atas ditetapkan dengan betul "echo" skrip keluar "Keluar 1FI ### Ujian jika direktori destinasi ada ### Skrip akan membuat direktori destinasi jika tidak ada.### Jika gagal membuat direktori, skrip akan ditamatkan jika [-d ​​"$ dest_dir"]; Kemudian echo "Direktori Destinasi Ditemui, All OK" Else Echo "Direktori Destinasi Tidak Ditemui, Mencipta Sekarang" Mkdir -P "$ Dest_dir" Jika [$? -eq 0]; kemudian echo "berjaya dicipta direktori destinasi."lain echo" gagal membuat direktori destinasi. Skrip Datang "Keluar 1 Fifi ### Salin Semua fail yang tersedia di Direktori Sumber ### Setelah Berjaya Menyalin Fail Keluarkannya dari Direktori Sumber. CD "$ source_dir" jika [$? -eq 0]; kemudian cari . -taip f> $ tmp_file semasa baca current_file_name do cp --parents "$ current_file_name" "$ dest_dir" if [$? -eq 0]; kemudian echo "fail $ current_file_name berjaya disalin."rm -f" $ current_file_name "lain echo" fail $ current_file_name gagal menyalin "fi selesai < $TMP_FILE rm -f $TMP_FILEfi ## Set the permissions after copying files if [ $CHANGE_OWNERSHIP -eq 1 ]; then sudo chmod 775 -R "$DEST_DIR" sudo chown $USER:$GROUP -R "$DEST_DIR"fi ################### End of Script ###################################

Simpan fail anda dan tutupnya.

Kemudian tetapkan kebenaran melaksanakan ke fail skrip.

skrip chmod +x.sh