Какой самый простой способ однонаправленной инкрементальной синхронизации папки, присутствующей в системе Linux.
+1 за использование командной строки. +2 за неиспользование rsync (похоже, у меня проблемы в моей системе.)
Какой самый простой способ однонаправленной инкрементальной синхронизации папки, присутствующей в системе Linux.
+1 за использование командной строки. +2 за неиспользование rsync (похоже, у меня проблемы в моей системе.)
csync - это синхронизатор файлов, специально разработанный для вас, обычного пользователя.
csync - это библиотека, которая по умолчанию поставляется с клиентом командной строки. Это без сервера и позволяет синхронизацию через sftp
или samba
.
Примеры использования:
csync /home/csync smb://csync:secret@rupert.galaxy.site/Users/csync
csync /home/csync sftp://csync@krikkit.galaxy.site:2222/home/csync
Вот как я могу сделать однонаправленную синхронизацию с голыми инструментами.
В начале, tar весь набор файлов и скопируйте их в пункт назначения.
Также установите маркер в базовом каталоге.
touch /Source/base/directory/last-sync-time.txt
Теперь мы хотим продолжать синхронизацию от источника к месту назначения.
В следующий временной интервал для синхронизации вперед (от источника к месту назначения),
# The backup script
cd /Source/base/directory
tar cfj -N ./last-sync-time.txt backup.tar.bz2 .
scp backup.tar.bz2 user@backup-server:/Backup/Directory/
touch /Source/base/directory/last-sync-time.txt
rm -f backup.tar.bz2
-N ./filename
указывает tar архивировать только файлы, измененные или созданные после изменения / создания filename
.
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:remotepass@remoteaddress:remoteport/remotefolderpath
done