rsync для копіювання файлів, які змінилися


42

Мені потрібно щодня копіювати деякі файли з певного каталогу в інше місце. Я хочу скопіювати лише зміни, тому планую використовувати rsync. Ці файли дотримуються наступного правила іменуванняmysql-bin.*

Моя команда виглядає так

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

Моя плутанина полягає в тому, що я планую скопіювати лише кілька файлів із каталогу, а не повний вміст каталогу, я * скопіював лише потрібні файли. Просто хочу знати, чи правильна моя команда для досягнення того ж.

Відповіді:


51

Це виглядає нормально. Хоча чому ви використовуєте -zопцію для стиснення передачі? Ця опція зазвичай використовується при копіюванні на віддалений сервер rsync через повільну мережу. У цьому випадку він буде стискати та миттєво розпаковувати файли, що лише збільшить ваш CPU uage без користі.

Параметр -a(архів) передбачає варіант -r(рекурсивний), тому немає необхідності чітко вказувати це в командному рядку.

Ви можете скористатися -nопцією (або --dry-run), щоб перевірити свою команду. Він покаже, що він би робив, не фактично копіюючи жодні файли. Щоб насправді побачити, що відбувається, слід також скористатися -vопцією (або --verbose).

Тому:

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

і як тільки ви будете щасливі, що файли перелічені коректно в режимі сухого запуску, видаліть nv:

rsync -ua --progress /var/lib/mysql/mysql-bin.*  /dbdata/binarylog/

3
Як говориться на чоловічій сторінці --dry-runпрапор найчастіше використовується в поєднанні з --verboseпрапором
Бенджамін Лейнвебер
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.