В предшествующей статье я описывал как сделать бекап сайта с базой mysql и залить на любой FTP. Но столкнулся с тем,что такой способ заливки портил архив и он становился нечитабельным. Потому решил делать все тоже самое,только заливать файл по SSH с помощью утилиты scp.
Для начала нужно сделать вход на требуемый сервер(куда будут заливаться бекапы) по ssh-ключу. Для этого под пользователем(не рутом!) с сервера хостинга выполняем команду:
ssh-keygen -t rsa
и генерируем ключ сервера для текущего пользователя. Затем копируем этот ключ на сервер бекапа:
ssh-copy-id имя_сервера_бекапа
После ввода пароля для входа на сервер,ключ будет скопирован.Теперь выходим с него и пробуем заново зайти:
ssh имя_сервера_бекапа
Если зашло сходу,без ввода пароля, то все получилось.
Теперь сама команда заливки бекапа,которая является заменой команды заливки по FTP. Сам скрипт смотрите в предидущей статье.
scp /путь_к_файлу/имя_файла$DATE.zip пользователь@сервер:/home/пользователь/backup/
Теперь по порядку:
scp — собственно сама программа
/путь_к_файлу/имя_файла$DATE.zip — путь и сам файл на сервер хостинга
пользователь@сервер — данные для входа на сервер бекапа, например [email protected]
:/home/пользователь/backup/ — абсолютный путь,куда заливать на сервер. Учтите что заливаете с правами пользователя,так что в какой нибудь /etc/ вы точно не зальете.