На удаленный сервер
sshpass -p "password" scp -P 7855 /root/backup_new/20240215.sql user@135.158.151.28:/volume2/backup/
password
— пароль к удаленному серверу7855
— порт удаленного сервера/root/backup_new/20240215.sql
— файл на текущем сервереuser
— пользователь удаленного сервера135.158.151.28
— IP удаленного сервера/volume2/backup/
— путь на удаленном сервере куда бэкапим
Локально
zip -r -0 /root/backup_new_`date +"%Y%m%d"`.zip /var/www/b2b
zip -r -0
— не использовать сжатие, архивируем с помощью zip/root/backup_new/backup_new_`date +"%Y%m%d"`.zip
— создать файл в директории /root/backup_new/
с названием backup_new_
+ текущая дата
Пример реального скрипта что используется на сервере
#!/bin/bash
#Бэкап базы данных
mysqldump --single-transaction --user=root --password=123456 b2b > /root/backup_new/b2b_`date +"%Y%m%d"`.sql
sleep 10
sshpass -p "password" scp -P 7855 /root/backup_new/b2b_`date +"%Y%m%d"`.sql user@135.158.151.28:/volume2/backup
#Бэкапим сайт
zip -r -0 /root/backup_new/backup_new_`date +"%Y%m%d"`.zip /var/www/b2b
sleep 60
sshpass -p "password" scp -P 7855 /root/backup_new/b2b_`date +"%Y%m%d"`.zip user@135.158.151.28:/volume2/backup/
# Удаление файлов .zip и .sql что старше 10 дней
# Директория, в которой находятся файлы
directory="/root/backup_new"
# Перейти в директорию
cd "$directory" || exit
# Удаление файлов .zip и .sql старше 5 дней
find . -maxdepth 1 -type f \( -name "*.zip" -o -name "*.sql" \) -mtime +10 -exec rm {} \;
Когда что то не работает
Включаем режим отладки
sshpass -p "password" scp -P 7855 -v /root/backup_new/20240215.sql user@135.158.151.28:/volume2/backup/
Для этого добавляем -v
Также можно просто команду scp -P 7855 -v /root/backup_new/20240215.sql user@135.158.151.28:/volume2/backup/
, она предложит сохранить ключи в память сервера