Skrip shell untuk menyalin semua file dengan struktur yang sama

Skrip shell untuk menyalin semua file dengan struktur yang sama

Script shell ini dirancang untuk tugas tertentu yang diperlukan untuk server kami. Jadi berbagi skrip dengan pembaca Tecadmin. Mungkin bermanfaat bagi Anda.

Persyaratan

Persyaratan kami adalah menyalin semua file yang dibuat di direktori ke direktori lain dengan struktur direktori yang sama. Skrip akan berjalan secara berkala, cari semua file yang dibuat di direktori sumber dan salin ke direktori tujuan. Script harus mempertahankan struktur direktori yang sama di direktori tujuan. Setelah itu ubah izin di direktori tujuan. Setelah salinan file yang berhasil, skrip harus menghapus file dari direktori sumber.

Skrip shell

Buat skrip shell di sistem Anda dan tambahkan konten di bawah ini. Perbarui Direktori Sumber dan Tujuan ke lokasi yang tepat.

Setel Change_ownership ke 0, jika Anda tidak ingin mengubah kepemilikan pada file tujuan.

#!/bin/bash ########################################################### ##### ### Setel sumber dan tujuan Destori yang tepat Source_dir = "/Source/dir/" dest_dir = "/desinasi/dir/" tmp_file =/tmp/copyFilesList.txt ### Setel nama pengguna dan grup untuk menetapkan izin pada file yang disalin ### Set Change_ownership ke 1 untuk mengubah kepemilikan atau 0 menjadi tidak berubah itu change_ownership = 1 user = "root" grup = "root" ##### ##### Jangan mengedit di bawah ini sampai diperlukan ###################. Jika ada direktori sumber ### skrip akan berhenti jika sumber tidak ada jika [ -d "$ source_dir"]; kemudian menggemakan "direktori sumber ditemukan" else echo "direktori sumber yang tidak ditemukan. Silakan periksa variabel di atas ditetapkan dengan benar "Echo" Script Exited "Exit 1 Fi ### Tes Jika ada direktori tujuan ### skrip akan membuat direktori tujuan jika tidak ada. ### Jika gagal membuat direktori, skrip akan berakhir jika [-d ​​"$ dest_dir"]; Lalu Echo "Direktori Destinasi Ditemukan, semuanya ok" lain else "direktori tujuan tidak ditemukan, membuat sekarang" mkdir -p "$ dest_dir" jika [$? -eq 0]; Lalu Echo "berhasil membuat direktori tujuan."Else Echo" gagal membuat direktori tujuan. Script Keluar "Keluar 1 Fi Fi ### Salin Semua File Tersedia di Direktori Sumber ### Setelah berhasil menyalin file, hapus dari direktori sumber. CD "$ Source_Dir" jika [$? -eq 0]; lalu temukan . -ketik f> $ tmp_file Saat membaca current_file_name do cp - -parents "$ current_file_name" "$ dest_dir" if [$? -eq 0]; lalu echo "file $ current_file_name berhasil disalin."rm -f" $ current_file_name "else echo" file $ 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 ###################################
12345678910111213141516171819202122232425262782930313233435363737383940446766464644448550555555551515553546966646488849555555551515155555354696646#!/bin/bash ########################################################### ##### ### Setel sumber dan tujuan Destori yang tepat Source_dir = "/Source/dir/" dest_dir = "/desinasi/dir/" tmp_file =/tmp/copyFilesList.txt ### Setel nama pengguna dan grup untuk menetapkan izin pada file yang disalin ### Set Change_ownership ke 1 untuk mengubah kepemilikan atau 0 menjadi tidak berubah itu change_ownership = 1User = 'root'group =' root '######## #### JANGAN edit di bawah ini sampai diperlukan ################### Uji jika direktori sumber ada ### skrip akan berhenti jika sumber tidak ada jika [ - d "$ source_dir"]; kemudian menggemakan "direktori sumber ditemukan" else echo "direktori sumber yang tidak ditemukan. Silakan periksa variabel di atas ditetapkan dengan benar "Echo" Script Exited "Exit 1Fi ### Tes Jika ada direktori tujuan ### skrip akan membuat direktori tujuan jika tidak ada.### Jika gagal membuat direktori, skrip akan berakhir jika [-d ​​"$ dest_dir"]; Lalu Echo "Direktori Destinasi Ditemukan, semuanya ok" lain else "direktori tujuan tidak ditemukan, membuat sekarang" mkdir -p "$ dest_dir" jika [$? -eq 0]; Lalu Echo "berhasil membuat direktori tujuan."Else Echo" gagal membuat direktori tujuan. Script Keluar "Keluar 1 FIFI ### Salin Semua File Tersedia di Direktori Sumber ### Setelah berhasil menyalin file, hapus dari Source Directory. CD "$ Source_Dir" jika [$? -eq 0]; lalu temukan . -ketik f> $ tmp_file Saat membaca current_file_name do cp - -parents "$ current_file_name" "$ dest_dir" if [$? -eq 0]; lalu echo "file $ current_file_name berhasil disalin."rm -f" $ current_file_name "else echo" file $ 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 file Anda dan tutup.

Kemudian atur izin jalankan ke file skrip.

skrip chmod +x.SH