Синхронизация удаленных папок в Linux
Каков самый простой способ однонаправленной инкрементной синхронизации папки, присутствующей в системе Linux.
+1 для использования командной строки. +2 для не использования rsync (Кажется, у меня проблемы с моей системой.)
- Как смонтировать сжатый ISO-образ?
- Какие маршруты должны быть установлены (в Linux), чтобы разрешить доступ в Интернет через данный интерфейс без установки его по умолчанию?
- Невидимая утечка памяти на Linux - сервер Ubuntu (а не кеш-диск / буферы)!
- Выключатель kill OpenVPN не работает
- Сохраненная процедура, которая автоматически удаляет строки старше 7 дней в MYSQL
- Как установить Linux вместе с Windows 8 без повреждения конфигурации загрузки Windows 8?
- Монитор неправильно отображает поддерживаемое разрешение
- Как сделать работу с сабвуфером Lenovo Y50 на linux?
- Автоматическая передача файлов с использованием метода проверки ответа на запрос
- Locate не находит все файлы, которые он должен
- Fstab при загрузке: установите, когда устройство подключено
- Как узнать, что у моей беспроводной карты включена инъекция?
- Загрузка нескольких файлов с параметрами wget и обработки
Csync – это синхронизатор файлов, специально предназначенный для вас, обычного пользователя.
Csync – это библиотека и клиент командной строки корабля по умолчанию. Он без сервера и позволяет синхронизировать через sftp
или samba
.
Примеры использования:
csync /home/csync smb://csync:[email protected]/Users/csync csync /home/csync sftp://[email protected]:2222/home/csync
Я думаю, вы должны решить свои проблемы с помощью rsync, это проверенный и верный инструмент синхронизации для unix.
rsync -uav --delete /loal/path example.com:/remote/path
Примечание. Для двунаправленной синхронизации вы можете использовать унисон, а также csync .
Так я бы сделал однонаправленную синхронизацию с голыми инструментами.
В начале, tar весь набор файлов и скопировать их в пункт назначения.
Также установите маркер в базовом каталоге.
touch /Source/base/directory/last-sync-time.txt
Теперь мы хотим синхронизировать с Source to Destination.
В следующий временной интервал для синхронизации вперед (от источника до места назначения)
# The backup script cd /Source/base/directory tar cfj -N ./last-sync-time.txt backup.tar.bz2 . scp backup.tar.bz2 [email protected]:/Backup/Directory/ touch /Source/base/directory/last-sync-time.txt rm -f backup.tar.bz2
- Имя
-N ./filename
сообщает tar для архивации только файлов, измененных или созданных после изменения / созданияfilename
.- Используя местную ссылку для подтверждения времени, вы не ошибаетесь; Если по какой-то причине не была сделана резервная копия, следующая будет накапливать ее
- Вы можете настроить этот сценарий как запись cronjob на исходном компьютере
- Я предполагаю, что вы будете использовать
scp
с аутентификацией с открытым ключом - Также предполагается, что вы можете обратиться к
backup-server
всякий раз, когда выдается этот скрипт. - Чтобы быть более безопасным, вы можете добавить проверки, подтверждающие сохранение резервной копии, а затем выполнить команду
touch
- Вы также можете вставлять команды для расширения резервных копий, накладывающихся на них поверх предыдущих в точке назначения; Или сохраните инкрементные архивы
tar.bz2
.
Я использую этот короткий скрипт для мониторинга и постоянной синхронизации каталога с удаленной папкой sftp;
#!/bin/sh dir1=/home/user/folder while inotifywait -qqre modify "$dir1"; do csync /home/user/folder sftp://remoteuser:[email protected]:remoteport/remotefolderpath done