Created
December 18, 2018 18:02
-
-
Save andronex/73e28c91507312f018c6729d11c75ae6 to your computer and use it in GitHub Desktop.
Скрипт для бэкапа
2. Поменять настройки, пути в файлах там, где нужно
3. Повешать выполнение backup.sh на cron
4. Скрипт будет работать даже на shared хостингах, т.к. использован подход, позволяющий избежать заблокированных команд
5. Если используется VPS или dedicated server, то можно обойтиь без PHP скрипта, а добавить в файл backup.sh строки из ftp.sh, выполнив нужные настройки и прописав доступы
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
#настройки для подключения к БД | |
USER="login" #логин для подключения к БД | |
PASS="pass" #пароль для подключения к БД | |
DB_NAME="db_name" #имя БД | |
#запускать для сохранения бэкапа | |
#переходим в директорию выше корня сайта | |
cd ~ | |
#сохраняем дамп БД | |
mysqldump -uUSER -pPASS DB_NAME > DB_NAME.sql | |
#архивируем файлы сайта | |
tar czf back_up.tar.gz public_html | |
#если нужно исключить из архива директории или файлы | |
#tar czf back_up.tar.gz public_html --exclude=import --exclude='config.php' --exclude=cgi-bin --exclude={'*.jpg','*.png','*.bmp','*.gif','*.jpeg','*.GIF','.htaccess'} --exclude=PDOCrud/script/uploads --exclude=PDOCrud/script/downloads | |
echo 'Сохранено' | |
#запускаем файл PHP от имени интерпретатора PHP версии 7.0 | |
#если на сервере основная версия PHP7, то можно написать команду просто: php ftp_backup.php | |
/opt/php70/bin/php ftp_backup.php |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
#настройки для подключения по FTP | |
FTPD="/" | |
FTPU="login" | |
FTPP="pass" | |
FTPS="127.0.0.1" | |
FTP="$(which ftp)" | |
cd ~ | |
#имена файлов | |
for f in back_up.tar.gz DB_NAME.sql | |
do | |
DUMPFILE=$f | |
$FTP -n $FTPS <<END_SCRIPT | |
quote USER $FTPU | |
quote PASS $FTPP | |
cd $FTPD | |
binary | |
mput $DUMPFILE | |
quit | |
END_SCRIPT | |
done |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
$files = ['back_up.tar.gz','DB_NAME.sql']; | |
$ftp_server = "127.0.0.1"; //ip сервера | |
$ftp_user_name = "login"; //ftp логин | |
$ftp_user_pass = "pass"; //ftp пароль | |
// установка соединения | |
$conn_id = ftp_connect($ftp_server); | |
// проверка имени пользователя и пароля | |
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass); | |
ftp_pasv($conn_id, true); | |
$date = date('d_'); | |
$path = dirname(__FILE__); | |
foreach($files as $file){ | |
rename($path . '/' . $file, $path . '/' . $date . $file); | |
// загрузка файла | |
if (ftp_put($conn_id, $date . $file, $date . $file, FTP_BINARY)) { | |
echo "$date$file успешно загружен на сервер\n"; | |
unlink($path . '/' . $date . $file); | |
} | |
else { | |
echo "Не удалось загрузить $date$file на сервер\n"; | |
} | |
} | |
// закрытие соединения | |
ftp_close($conn_id); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment