Skrypt powłoki do kopiowania wszystkich plików o tej samej strukturze

Skrypt powłoki do kopiowania wszystkich plików o tej samej strukturze

Ten skrypt powłoki jest przeznaczony do konkretnego zadania wymaganego dla naszego serwera. Więc udostępnianie skryptu z czytelnikami Tecadmin. To może być dla Ciebie pomocne.

Wymóg

Naszym wymogiem jest kopiowanie wszystkich plików utworzonych w katalogu do innego katalogu o tej samej strukturze katalogu. Skrypt będzie uruchomiony w regularnym odstępie czasu, wyszukiwać wszystkie pliki utworzone w katalogu źródłowym i skopiować je do katalogu docelowego. Skrypt musi zachować tę samą strukturę katalogu w katalogu docelowym. Następnie zmień uprawnienie do katalogu docelowego. Po udanej kopii pliku skrypt musi usunąć plik z katalogu źródłowego.

Skrypt powłoki

Utwórz skrypt powłoki w swoim systemie i dodaj poniżej zawartość. Zaktualizuj katalogi źródłowe i docelowe do właściwej lokalizacji.

Ustaw zmianę na 0, jeśli nie chcesz zmieniać własności w plikach docelowych.

#!/bin/bash ########################nt ##### ### Ustaw właściwe źródło i docelowe katalog lokalizacji źródło_dir = "/source/dir/" dest_dir = "/desination/dir/" tmp_file =/tmp/copyFilesList.txt ### Ustaw nazwę użytkownika i nazwę grupy, aby ustawić uprawnienia na skopiowanych plikach ### Ustaw zmianę_ownisteru na 1, aby zmienić własność lub 0 na niezmienione IT zmiana_ownister = 1 user = "root" grupa = "root" ###### ##### -d "$ source_dir"]; Następnie nie znaleziono nie znalezionego katalogu źródłowego echo „źródłowego”. Sprawdź powyższe zmienne są ustawione poprawnie „echo” Skrypt Exited „Exit 1 fi ###. ### Jeśli nie udało się utworzyć katalogu, skrypt zakończy się, jeśli [-d "$ dest_dir"]; Następnie Echo „Znaleziono katalog docelowy, wszystkie OK” Else Echo ”Nie znaleziono katalogu docelowego, tworząc teraz„ mkdir -p ”$ dest_dir”, jeśli [$? -Eq 0]; następnie echo „pomyślnie utworzył katalog docelowy.„Else Echo” nie udało się utworzyć katalogu docelowego. Skrypt Wychodzący „Exit 1 fi fi ### Kopiuj wszystkie pliki dostępne w katalogu źródłowym ### Po pomyślnym skopiowaniu pliku Usuń go z katalogu źródłowego. CD "$ Źródło_dir" Jeśli [$? -Eq 0]; Następnie znajdź . -Typ f> $ tmp_file podczas przeczytania Current_file_name Do cp --parents "$ current_file_name" "$ dest_dir" if [$ [$? -Eq 0]; następnie echo "plik $ current_file_name pomyślnie skopiowany.„rm -f” $ current_file_name "else echo" plik $ current_file_name nie udało się kopiować "fi gotowe < $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 ###################################
12345678910111213141516171819202122232425262728293031323334353363738394041424344454647484950515253545565775855960661626364#!/bin/bash ########################nt ##### ### Ustaw właściwe źródło i docelowe katalog lokalizacji źródło_dir = "/source/dir/" dest_dir = "/desination/dir/" tmp_file =/tmp/copyFilesList.txt ### Ustaw nazwę użytkownika i nazwę grupy, aby ustawić uprawnienia na skopiowanych plikach ### Ustaw zmianę_ownister na 1, aby zmienić własność lub 0 na niezmienione IT ZMIANIE_OWNOSKI = 1USER = 'root'Group =' root '#######. #### Nie edytuj poniżej tego, dopóki nie jest to wymagane ################ ### test, jeśli katalog źródłowy istnieje ### d "$ source_dir"]; Następnie nie znaleziono nie znalezionego katalogu źródłowego echo „źródłowego”. Sprawdź powyższe zmienne są ustawione poprawnie „echo” Skrypt Exited „Exit 1fi ###.### Jeśli nie udało się utworzyć katalogu, skrypt zakończy się, jeśli [-d "$ dest_dir"]; Następnie Echo „Znaleziono katalog docelowy, wszystkie OK” Else Echo ”Nie znaleziono katalogu docelowego, tworząc teraz„ mkdir -p ”$ dest_dir”, jeśli [$? -Eq 0]; następnie echo „pomyślnie utworzył katalog docelowy.„Else Echo” nie udało się utworzyć katalogu docelowego. Skrypt Wyjazdowy „Exit 1 FIFI ### Kopiuj wszystkie pliki dostępne w katalogu źródłowym ### Po pomyślnym skopiowaniu pliku Usuń go z katalogu źródłowego. CD "$ Źródło_dir" Jeśli [$? -Eq 0]; Następnie znajdź . -Typ f> $ tmp_file podczas przeczytania Current_file_name Do cp --parents "$ current_file_name" "$ dest_dir" if [$ [$? -Eq 0]; następnie echo "plik $ current_file_name pomyślnie skopiowany.„rm -f” $ current_file_name "else echo" plik $ current_file_name nie udało się kopiować "fi gotowe < $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 ###################################

Zapisz swój plik i zamknij go.

Następnie ustaw uprawnienie Wykonaj na plik skryptu.

skrypt chmod +x.cii