За последние 24 часа нас посетил 18591 программист и 1675 роботов. Сейчас ищут 775 программистов ...

используем php для синхронизации по rsync через ssh с ключам

Тема в разделе "PHP для новичков", создана пользователем saifuddin, 23 янв 2016.

  1. saifuddin

    saifuddin Новичок

    С нами с:
    5 окт 2013
    Сообщения:
    19
    Симпатии:
    0
    Доброго времени суток.
    Помогите разобраться с настройкой PHP.
    Есть команда rsync, для синхронизации файлов. Сейчас есть два сервера cs1 и cs2. на обоих стоят ssh ключи без паролей.
    Если ввести в терминале команду
    Код (PHP):
    1. rsync -rvzat --delete -'ssh -p 8055 -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null'  /var/www/editor/user/  user@cs2:/var/www/editor/user/
    То происходит синхронизация. Теперь мне нужно добиться этого при помощи PHP.

    Код (PHP):
    1. <?php 
    2. $connection = ssh2_connect('cs2', 22, array('hostkey'=>'ssh-rsa'));
    3.  
    4. if (ssh2_auth_pubkey_file($connection, 'user',
    5.                           '/home/user/.ssh/id_rsa.pub',
    6.                           '/home/user/.ssh/id_rsa', '')) {
    7.   echo "Public Key Authentication Successful\n";
    8. } else {
    9.   
    10.   die('Public Key Authentication Failed');
    11. }
    12.  
    13.  
    14. $stream = ssh2_exec($connection,"rsync -rvzat --delete -e $connection  /var/www/editor/user/  user@cs2:/var/www/editor/user/");
    15. stream_set_blocking($stream, true);
    16. $stream_out = ssh2_fetch_stream($stream, SSH2_STREAM_STDERR);
    17. echo stream_get_contents($stream_out);
    Явно я что-то не так делаю. Помогите разобраться что нужно сделать, чтобы все заработало. Подключение по ключам происходит. Вот только выполнить команду не могу.