Так случилось, что при первой покупке сервера, я очень экономил отказавшись от панели управлении и бекапа. И тут спустя неделю упорной работы, троян ворует пароли фтп и сносит всесь мой труд. Как говорится, на ошибках учатся. Я все так же экономлю на отказе от "плюшек" к серверу, но на резервное копирование смотрю по другому. Так как же я решаю эту проблему? И так, что мы имеем? Виртуальный или физический сервер с установленной Linux-ОС, веб-сервером и базами данных MySQL. Файлы веб-сервера располагаются в директориях /home/site1 /home/site2 /home/site3 Что требуется Создание скрипта для резервного копирования файлов и баз данных с сохранением на удаленном FTP-сервере и запуск его каждый день. Как я решаю проблему Для простоты примера работать мы будем из-под root`а, директория для хранения бэкапов файлов — /root/backup/server, а для дампов MySQL — /root/backup/mysql Само решение Здесь приводится пример скрипта для бэкапа файлов, для наглядности пояснения даны в квадратных скобках на русском языке. Код: #!/bin/sh ### System Setup ### BACKUP=/root/backup/server Код: ### FTP ### FTPD="/" FTPU="username" [имя пользавателя (логин) удаленного ftp-cервера] FTPP="megapassword" [пароль доступа к удаленному ftp-серверу] FTPS="my_remote_backup.ru" [собственно, адрес ftp-сервера или его IP] Код: ### Binaries ### TAR="$(which tar)" GZIP="$(which gzip)" FTP="$(which ftp)" Код: ## Today + hour in 24h format ### NOW=$(date +%Y%m%d) [задаем текущую дату и время, чтобы итоговый файл выглядел в виде server-YYYYMMDD.tar.gz] ### Create tmp dir ### Код: mkdir $BACKUP/$NOW $TAR -cf $BACKUP/$NOW/etc.tar /etc [c целью сохранения настроек для простоты копируем весь /etc ] $TAR -cf $BACKUP/$NOW/site1.tar /home/site1/ $TAR -cf $BACKUP/$NOW/site2.tar /home/site2/ $TAR -cf $BACKUP/$NOW/site2.tar /home/site3/ ARCHIVE=$BACKUP/server-$NOW.tar.gz ARCHIVED=$BACKUP/$NOW $TAR -zcvf $ARCHIVE $ARCHIVED Код: ### ftp ### cd $BACKUP DUMPFILE=server-$NOW.tar.gz $FTP -n $FTPS <<END_SCRIPT quote USER $FTPU quote PASS $FTPP cd $FTPD mput $DUMPFILE quit END_SCRIPT ### clear ### rm -rf $ARCHIVED Результатом работы данного скрипта будет созданный файл в директории /root/backup/server вида server-ГГГГММДД.tar.gz содержащий в себе tar-архивы директорий /etc, /home/site1, /home/site2 и /home/site3 Этот же файл будет загружен на FTP-сервер, который мы указали в начале скрипта. Решение для базы Этим скриптом мы выгружаем базы данных MySQL (делаем т.н. «дампы). Каждая база выгружается в отдельный файл. Код: #!/bin/sh # System + MySQL backup script ### System Setup ### BACKUP=/root/backup/mysql ### Mysql ### [параметры доступа к нашим базам MySQL] MUSER="root" MPASS="megapassword" MHOST="localhost" ### FTP ### FTPD="/" FTPU="username" [имя пользавателя (логин) удаленного ftp-cервера] FTPP="megapassword" [пароль доступа к удаленному ftp-серверу] FTPS="my_remote_backup.ru" [собственно, адрес ftp-сервера или его IP] ### Binaries ### TAR="$(which tar)" GZIP="$(which gzip)" FTP="$(which ftp)" MYSQL="$(which mysql)" MYSQLDUMP="$(which mysqldump)" ## Today + hour in 24h format ### NOW=$(date +%Y%m%d) ### Create temp dir ### mkdir $BACKUP/$NOW ### name Mysql ### DBS="$($MYSQL -u $MUSER -h $MHOST -p$MPASS -Bse 'show databases')" for db in $DBS do ### ### mkdir $BACKUP/$NOW/$db FILE=$BACKUP/$NOW/$db/$db.sql.gz echo $i; $MYSQLDUMP --add-drop-table --allow-keywords -q -c -u $MUSER -h $MHOST -p$MPASS $db $i | $GZIP -9 > $FILE done ARCHIVE=$BACKUP/mysql-$NOW.tar.gz ARCHIVED=$BACKUP/$NOW $TAR -zcvf $ARCHIVE $ARCHIVED ### ftp ### cd $BACKUP DUMPFILE=mysql-$NOW.tar.gz $FTP -n $FTPS <<END_SCRIPT quote USER $FTPU quote PASS $FTPP cd $FTPD mput $DUMPFILE quit END_SCRIPT ### clear ### rm -rf $ARCHIVED Результат работы скрипта — файл в директории /root/backup/server вида mysql-ГГГГММДД.tar.gz содержащий в себе tar-архивы c дампами всех баз данных и его выгрузка на FTP-сервер. аво старт Сохраняем данные скрипты в директорию /etc/cron.daily, предварительно проверив в файле /etc/crontab, что именно из этой директории запускаются скрипты каждый день.
Даже и не знаю как можно (и зачем?) найти сервер или VPN без установленного бесплатного ISPmanager Lite. Надо брать в нормальных местах, там всегда есть панель управления. денег дополнительно не берут за это.