_______            ___   ______     _      __
 /_  __(_)___  _____( _ ) /_  __/____(_)____/ /_______
  / / / / __ \/ ___/ __ \/|/ / / ___/ / ___/ //_/ ___/
 / / / / /_/ (__  ) /_/  </ / / /  / / /__/ ,< (__  )
/_/ /_/ .___/____/\____/\/_/ /_/  /_/\___/_/|_/____/
     /_/

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