Войти

Показать полную графическую версию : > скрипт бекапа


боксер
21-08-2014, 12:45
Здравствуйте, По этому скрипту бекаплюсь на яндекс.Но по ходу и на хостинге тоже пишется архив. Хочу это убрать. Написал в поддержку.Говорят править код в скрипте. Но ни как не пойму где в коде об этом говориться.
<?
// Резервное копирование MySQL и файлов хостинга
// Версия 2.1 Яндекс
$dbhost = "localhost"; //Адрес MySQL сервера
$dbuser = "имя_пользователя"; //Имя пользователя базы данных
$dbpass = "пароль"; //Пароль пользователя базы данных
$dbname = "база_данных"; //Имя базы данных
$sitedir = "/home/что_то_там/public_html"; //Абсолютный путь к сайту от корня диска
$excludefile = $sitedir.'/backup/*.gz'; //Файлы которые не должны попасть в архив
$yadisk_email='адрес_почты@yandex.ru'; //Имя пользователя Яндекс.Диск
$yadisk_pass='пароль_на_яндекс'; //Пароль пользователя Яндекс.Диск
$yadisc_dir='Сайт/backup/'; //Директория на Яндекс.Диск куда будем копировать. Она должна существовать!
// Все что ниже, лучше не трогать
$dbbackup = $dbname .'_'. date("Y-m-d_H-i-s") . '.sql.gz';
$filebackup = 'ureech_'. date("Y-m-d_H-i-s") .'.tar.gz';
system("mysqldump -h $dbhost -u $dbuser --password='$dbpass' $dbname | gzip > $dbbackup");
//Для больших баз данных закоментировать строчку выше и раскоментировать ниже.
//system("mysqldump --quick -h $dbhost -u $dbuser --password='$dbpass' $dbname | gzip > $dbbackup");
system ("curl --user $yadisk_email:$yadisk_pass -T $dbbackup https://webdav.yandex.ru/$yadisc_dir");
unlink($dbbackup);
shell_exec("tar cvfz $filebackup $sitedir --exclude=$filebackup --exclude=$excludefile");
system ("curl --user $yadisk_email:$yadisk_pass -T $filebackup https://webdav.yandex.ru/$yadisc_dir");
unlink($filebackup);
?>

Habetdin
21-08-2014, 20:53
боксер, в данном скрипте бэкапы после заливки удаляются (http://php.net/manual/ru/function.unlink.php):
unlink($dbbackup);
...
unlink($filebackup);

боксер
22-08-2014, 12:45
Да вот что то не удаляются.

alef2474
24-08-2014, 20:55
Имхо, первый system бэкапит на хостинг, его и закомментируйте, если не надо.
Unlink удаляет имя файла, а не файл. Там по ссылке же внизу по-английски написано.
Имя файла удаляется, чтобы на след.день было другое, с новой датой.

боксер
26-08-2014, 23:30
Нет, первый system бекапит бд. На половину я разобрался. На хосте создаёт архив и шлёт его на диск, но созданный архив остаётся на хосте естественно и unlink($filebackup); его не удаляет, поддержка говорит, что и не должен, читай мануал, но я всё равно что то не вкуриваю почему не удаляет.

Habetdin
27-08-2014, 23:15
почему не удаляет »
При наличии ссылок на файл в системе или его занятости другим процессом "тело" файла может остаться. Можно попробовать тогда так удалить:
system("rm $dbbackup");
system("rm $filebackup");

боксер
28-08-2014, 20:49
Habetdin, Спасибо попробую.




© OSzone.net 2001-2012