rsync, aby skopiować zmienione pliki

42

Muszę codziennie kopiować niektóre pliki z określonego katalogu do innej lokalizacji. Chcę tylko skopiować zmiany, więc planuję użyć rsync. Pliki te są zgodne z następującą konwencją nazewnictwamysql-bin.*

Moje polecenie wygląda następująco

# rsync --update -raz --progress /var/lib/mysql/mysql-bin.*  /dbdata/binarylog/

Moje zamieszanie polega na tym, że planuję skopiować tylko kilka plików z katalogu, a nie pełną zawartość katalogu, więc * kopiowałem tylko wymagane pliki. Chcę tylko wiedzieć, czy moje polecenie jest prawidłowe, aby osiągnąć to samo.

Zama Ques
źródło

Odpowiedzi:

51

Wygląda OK. Chociaż dlaczego korzystasz z -zopcji kompresji transferu? Ta opcja jest zwykle używana, gdy kopiujesz na zdalny serwer rsync przez powolną sieć. W tym przypadku skompresuje i natychmiast rozpakuje pliki, co tylko zwiększy wykorzystanie procesora bez żadnych korzyści.

Opcja -a(archiwizacja) implikuje opcję -r(rekurencyjną), więc nie ma potrzeby jawnego określania jej w wierszu poleceń.

Możesz użyć -nopcji (lub --dry-run), aby sprawdzić swoje polecenie. Pokaże, co by zrobił bez kopiowania plików. Aby zobaczyć, co się dzieje, należy również użyć -vopcji (lub --verbose).

W związku z tym:

rsync -uanv /var/lib/mysql/mysql-bin.*  /dbdata/binarylog/

a gdy będziesz zadowolony, że pliki są poprawnie wyświetlane na liście w suchym cyklu, usuń nv:

rsync -ua --progress /var/lib/mysql/mysql-bin.*  /dbdata/binarylog/
garethTheRed
źródło
3
Jak napisano na stronie podręcznika, --dry-runflaga jest najczęściej używana w połączeniu z --verboseflagą
Benjamin Leinweber