Użycie polecenia rsync w PHP
Użyć polecenia rsync możemy za pomocą instrukcji
exec()
, wartością zwracaną przez tą
instrukcje są dane wyjściowe polecenia.
W celu uruchomienia polecenia rsync
,
należy pamiętać o wymianie kluczy między stronami oraz o tym aby
użytkownik www-data posiadał w swoim katalogu domowym
(zazwyczaj /var/www) katalog .ssh z kluczami. Katalog
ten powinien mieć ustawionego właściciela na www-data oraz
odpowienie uprawnienia (644, dla katalogu, 600 dla
klucza prywatnego [plik bez rozszerzenia .pub]). Warto również użyć
kilku opcji SSH (przez SSH rsync
łączy się z serwerem) takich jak 'StrictHostKeyChecking' ustawione na
'no' (StrictHostKeyChecking=no
) oraz
'UserKnowHostFile' ustawione na /dev/null
(UserKnownHostsFile=/dev/null
)
Aby w ogóle użyć opcji SSH w rsync
,
należy użyć przełącznika -e
jako
wartość tej opcji w podwójnych apostrofach podaje się polecenie
ssh
gdzie, każdą z opcji podaje się
po przełączniku -o
.
exec('rsync -re \"ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null\" <katalog_lokalny> <użytkownik_zdalny>@<adres_ip_serwera>:<katalog_zdalny>');
~xf0r3m