Skocz do zawartości
IceManSpy

Rsync - kasowanie plików z file list

Polecane posty

Cześć

 

Mam plik o nazwie fileList, w którym znajduje się lista plików przygotowanych do synchronizacji.

Wszystko fajnie się wysyła, ale na docelowym serwerze nie są usuwane pliki, których nie ma na liście (na dysku na serwerze źródłowym one istnieją).

Takie polecenie wykonuję (oczywiście zmienne są poprawne ; parametr n jest dla testów):

 

rsync -n -avhz --delete --rsh='ssh -p$PORT' --files-from=/fileList / $USER@$BACKUP_SERVER:/$BACKUP_DIR/

 

Jak zrobić, aby rsync synchronizował to co jest na liście (wysyłał ale i usuwał) ?

 

Zawartość pliku fileList:

 

/etc/munin/munin.conf
/iptablesave.sh
/etc/crontab
/etc/network/iptables.rules
/etc/nginx/sites-available/00-default
/etc/nginx/sites-available/10-nginx
/etc/nginx/sites-available/20-apache
/var/lib/vz/backups/dump/vzdump-openvz-100-2015_05_19-00_15_09.tar.lzo
/var/lib/vz/backups/dump/vzdump-openvz-101-2015_05_19-00_18_17.tar.lzo
/var/lib/vz/backups/dump/vzdump-openvz-102-2015_05_19-00_20_42.tar.lzo

 

 

Doczytałem, że delete nie współgra z files-from i znalazłem takie rozwiązanie:

 

rsync -n -avhz --delete-excluded --rsh='ssh -p$PORT' --include-from=/fileList --exclude=* / $USER@$BACKUP_SERVER:/$BACKUP_DIR/

 

Jedna to znowu kasuje pliki, które są na liście.

Edytowano przez IceManSpy (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Niestety żadne z poniższych zapisów nie kasuje plików na docelowym:

 

 

rsync -n -avhz --rsh='ssh -p$PORT' --include-from=/fileList --exclude=* / $USER@$BACKUP_SERVER:/$BACKUP_DIR/
rsync -n -avhz --rsh='ssh -p$PORT' --files-from=/fileList --exclude=* / $USER@$BACKUP_SERVER:/$BACKUP_DIR/
rsync -n -avhz --rsh='ssh -p$PORT' --files-from=/fileList / $USER@$BACKUP_SERVER:/$BACKUP_DIR/

 

 

Teoretycznie mógłbym robić kopię lokalną do innego folderu, a potem zrobić rsync z folderu tej kopii na serwer backupowy, ale to trochę mija się z celem.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Czyli chcesz kasować pliki na docelowym, ale tylko te, których nie ma lokalnie? To po co ta lista?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Nie. Lokalnie istnieją te foldery / pliki (robię lokalnie 3 kopie kontenerów OpenVZ, a chcę wysłać tylko najnowszy, a stare mają się skasować).

 

Chcę zsynchronizować to co mam na liście. A jeśli na liście czegoś nie ma, to na serwerze docelowym ma to usunąć.

 

Przykład:

Serwer źródłowy:

/a1

/a2

/a3

/b1

/b2

/b3

 

Lista:

/a3

/b3

 

Serwer docelowy przez rsynciem:

/a1

/a2

/b1

/b2

 

Serwer docelowy po rsyncu:

/a3

/b3

 

Edytowano przez IceManSpy (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się


×