Скрипт для ежедневного бэкапа вашего сайта на email через cron

А если серьезно, то если у тебя есть доступ к crontab, то скорей всего доступ к шеллу тоже есть, то проще скрипт mysqldump с rsync/scp из 3х строк. Все написанное на php будет попыткой имитировать функционал.
Я хз как им отправлять бекап на гмейл(

Пробую по минимуму:
Код:
mysqldump -u USER -hHOST -pPASSWORD DATABASE | gzip > /path/to/my/account/file.sql.gz | mail myemail@gmail.com
Сохраняет файл ок.
Но:
Приходит пустой мейл от mysqldump и "No message, no subject; hope that's ok" от крона
Непонятно(

Мну нада пересылку файла на гмейл и месадж (операция прошла успешно или нет) на системный мейл от крона.
Это возможно?
плз
 
Последнее редактирование:
Мну нада пересылку файла на гмейл и отчет (бекап успешно или нет) на системный мейл от крона.
Это возможно?

Все возможно, особенно учитывая что тема как раз про то, как это сделать. Но, имхо, это извращение, примерно как вырезать гланды через анальное отверстие.

Задача положить бекап на удаленный хост и прислать об этом отчет, верно? Зачемиспользовать для первого пункта мыло? Да еще слать 20-метровые аттачи без гарантии доставки.
Стримить аттач через пайп тоже в принципе не комильфо, тогда уже mutt используй. Если нужно именно стримить на другой хост - замени MySQL на Percona (это довольно неплохой форк мускула) и используй xbstream из Percona tools.

Что касается дропбокса и гуглодрайва, проще использовать их API.

На примере Дропбокса:
Для просмотра ссылки Войди или Зарегистрируйся
При установке связываешь его со своим текущим аккаунтом, соответственно дампы делаешь в локальное хранище Дропбокса, которое синкается с удаленным.

Есть скрипт для CLI интерфейса, который позволяет смотреть статус. Вот тут рассказывается как им пользоваться:
Для просмотра ссылки Войди или Зарегистрируйся

Можно в том же кроне периодически дергать статус и слать репорты на мейл. Ну или дергать в том же скрипте после дампа.

В локальном хранилище держать необходимое число бекапов. 20метровые в общем смысла нет делать инкрементными.

Код:
find /home/user/dropbox/mysql -daystart -maxdepth 1 -ctime +${days_to_keep} -type d -exec /bin/rm -rf {} \;

C гуглом то же самое можно.
Например: Для просмотра ссылки Войди или Зарегистрируйся
 
Блин. Для мну пока закруто. Я обычный пользователь шаред хостинга, и с шеллом дальше строчки в кроне не работал..
Ты хоть представляешь как ты мну щас грузанул? :conf:
 
Блин. Для мну пока закруто. Я обычный пользователь шаред хостинга, и с шеллом дальше строчки в кроне не работал..
Ты хоть представляешь как ты мну щас грузанул? :conf:

Нет, я ж не телепат :D
Ну там просто же (с).
Тем более что ты демонстрировал зачатки интеллекта в виде строки с пайпами :conf:
Не хочешь лезть в шелл - бекапь вручную :)
 
Уже 2 дня бекап работает так:
Раз в день phpMyBackupPro (командой backup.php DATABASE 1 1 1 1) через крон сохраняет файл в папке и доставляет его на почту с сообщением
+File successfully saved as mybase.sql.gz
+Files succesfully sent by email to mail@myhost.com
+Duration: 17.125 seconds
Дальше с mail@myhost.com мейл автоматически удаляется, перелетая на myemail@gmail.com (напрямую на гмейл не идет)

Думал можно упростить както в пару строчек с помощью mysqldump, как ты писал выше (зачем мне этот комбайн phpMyBackupPro)....
 
Думал можно упростить както в пару строчек, как ты писал выше (зачем мне этот комбайн phpMyBackupPro)....

Можно было бы, если бы ты написал в первом посте важное примечание "Я обычный пользователь шаред хостинга".
Пользователю шаред хостинга никто не даст sudo и вообще чего-то большего чем собственный crontab поставить, так что сценарий становится не актуален.

Но подразумевая редактирование crontab не через веб интерфейс предполагаем что шелл все же есть.

В твоем случае остается пара вариантов.
Вариант один (самый клевый:(
Если есть второй хост с ssh/ftp доступом добавить в крон что-то типа
rsync -av --delete /source user@remotehost:/destination и и синкать локальное хранилище с удаленным. Это конечно при условии что админы поставили на оба хоста rsync. И что есть возможность сгенерить и разложить приватный и публичный ключи (и тут я тебя снова загружу :) )
Если нет, то заменить команду на scp, он по дефолту есть.

Вариант второй, если нет:
сделать как ты, на php скриптах. Собственно нефиг жаловаться, это пожалуй оптимальный вариант при ограниченных ресурсах.
 
Я все понял, мне светит только вариант 2, спасиба :hello:
 
Почитал тему, вопрос актуальный, не знаешь что приключится с твоими файлами на сервере завтра..

Знает ли кто проверенные скрипты или готовые решения в плане скидывания бэкапа в облако, например через webdav?

Чутка погуглив нашел 2 решения:
1. Для просмотра ссылки Войди или Зарегистрируйся
2. Для просмотра ссылки Войди или Зарегистрируйся

Второй вариант как то больше внушает доверие, кто сталкивался с таким? хотелось бы услышать мнение опытных пользователей насчет подобных решений..
 
Назад
Сверху