Як і SleighBoy сказав, rsync є остаточно інструментом, який ви шукаєте. Оскільки це може бути страшно на перший погляд, через його багато варіантів, я запропоную найбільш важливі для вас, на основі ваших потреб. Основним синтаксисом для місцевих резервних копій є:
rsync [OPTION..] SRC.. DST
Взагалі --archive/-a опція використовується, оскільки вона містить деякі інші загальні параметри --recursive та опції для збереження прав доступу до файлів.
Один з варіантів ви ні повинні використовувати --delete інакше rsync буде видаляти всі файли є в DST призначення, але не у джерелах СТО.
Можливо, вам також потрібна опція --relative/-R. Це дає змогу використовувати відносні шляхи. На сторінці man:
... це означає, що повні імена шляхів, вказані в командному рядку, надсилаються на сервер, а не тільки на останні частини імен файлів. Це особливо корисно, коли потрібно одночасно надсилати декілька різних каталогів. Наприклад, якщо ви використовували цю команду:
rsync -av /foo/bar/baz.c / tmp /
... це створить файл з ім'ям baz.c в / tmp /. Якщо замість цього використовується
rsync -avR /foo/bar/baz.c / tmp /
потім буде створений файл /tmp/foo/bar/baz.c - збережеться повне ім'я шляху. Щоб обмежити кількість відправленої інформації про шлях, можна вставити крапку та косу риску у вихідний шлях, наприклад:
rsync -avR /foo/./bar/baz.c віддалений: / tmp /
Це створить /tmp/bar/baz.c на віддаленому комп'ютері.
Вам також потрібна опція:
--exclude = PATTERN
Один дуже зручний варіант --dry-run що просто імітує передачу. Ви можете використовувати його для перевірки ваших команд rsync.
Наступні параметри можуть бути використані для виконання процесу резервного копіювання:
--stats --verbose --human-readable --progress
Підсумовуючи, якщо вам потрібно зробити резервну копію папки /home/user в папку /media/backup окрім папок /home/user/lib і /home/user/dir1/dir2 потім можна використовувати:
rsync -aRvh --exclude=/home/user/lib --exclude=/home/user/dir1/dir2 /home/user /media/backup
, який відтворить всю ієрархію каталогів /home/user в /media/backup.