VBsupport перешел с домена .ORG на родной .RU
Ура!
Пожалуйста, обновите свои закладки - VBsupport.ru
Блок РКН снят, форум доступен на всей территории России, включая новые терртории, без VPN
На форуме введена премодерация ВСЕХ новых пользователей
Почта с временных сервисов, типа mailinator.com, gawab.com и/или прочих, которые предоставляют временный почтовый ящик без регистрации и/или почтовый ящик для рассылки спама, отслеживается и блокируется, а так же заносится в спам-блок форума, аккаунты удаляются
Если вы хотите приобрести какой то скрипт/продукт/хак из каталогов перечисленных ниже: Каталог модулей/хаков
Ещё раз обращаем Ваше внимание: всё, что Вы скачиваете и устанавливаете на свой форум, Вы устанавливаете исключительно на свой страх и риск.
Сообщество vBSupport'а физически не в состоянии проверять все стили, хаки и нули, выкладываемые пользователями.
Помните: безопасность Вашего проекта - Ваша забота. Убедительная просьба: при обнаружении уязвимостей или сомнительных кодов обязательно отписывайтесь в теме хака/стиля
Спасибо за понимание
[Требуется доработка] Систематизированный бекап данных на внешний FTP
0
вложу свои 5 копеек в знания
ибо знаю не много, но для получения знаний, надо не только читать, но и пробовать а пробовать не дают так как качать нельзя
ВОПРОС:
Как сделать полноценный бекап базы и файловой системы форума, при этом он не должен храниться на серваке где расположен сам форум
Ответ: для этого надо:
1 - root доступ к хостингу
2 - доступ к базе данных mysql
3 - удаленный ftp
4 - желание уделить на это 15 минут
теперь по порядку
на основном хосте создаем исполняемый файлик скрипта со следующим текстом
#backup.sh
# переходим в папку рута, так как от его имени будут все действия выполняться
cd /root/
#подключаемся к mysql и сливаем данные в файл
mysqldump -uUSER -p`cat /etc/psa/.psa.shadow` DB_NAME > BD_SAVE-wi-`date +%Y-%m-%d-%H-%M-%S`.sql
#чтобы различать базы по времени создания в название добавляется время и дата создания с помощью этого ключа wi-`date +%Y-%m-%d-%H-%M-%S`
# делаем архив папки в которой хранится форум
tar -cf forum.tar -C /var/www/vhosts/FORUM/ ./
#далее цепляемся на ftp и сливаем файлы на него
ftp -inp FTP_IP <<END_SCRIPT
quote USER USER
quote PASS PASS
bin
mput /root/*.sql
mput /root/*.tar
quit
END_SCRIPT
#подчищаем за собой основной хостинг, дабы места не занимало! оно когда на автомате делается, забываешь руками файлы чистить, а потом удивляешься - куда место сьедается
rm /root/*.sql
rm /root/*.tar
далее, если хотите чтобы ваш скрипт выполнялся из консоли из любого вашего местоположения, необходимо переместить этот скрипт в папку /bin/
в противном же случае для выполнения этого скрипта вам придется всегда указывать полный путь к этому файлу
Далее под правами рута мы лезем в крон
sudo -s
rootpass
vim /etc/crontab
и начинаем править распорядок дня для сервера
в него забиваем порядок когда вы хотите чтобы скрипт исполнялся
m h 1-12 1-31 1-7 user command - эту строку забивать не надо она для разьяснения
45 4 * * 7 root backup.sh
итак сначала указываются минуты выполнения задания
затем часы
столбец 1-12 указывает в каком МЕСЯЦЕ необходимо выполнить задание
столбец 1-31 указывает в какой ДЕНЬ МЕСЯЦА ( если месяц в предидущем столбце не указан, то задание будет выполняться каждый месяц в определенный день )
столбец 1-7 указывает в какой ДЕНЬ НЕДЕЛИ!!!
в моем примере скрипт будет стартовать в каждое воскресенье в 4-45 ночи
вот например если нет cpanel, откуда взять файл /etc/psa/.psa.shadow ?
где докачка на ftp при обрыве ?
ну и тд и тп. у всех разные требования. каждый сценарий бекапа уникален.
@Foxch2
Простоузер
Join Date: Dec 2008
Posts: 57
Версия vB: 4.0.x
Reputation:
Novice 5
Репутация в разделе: 0
0
Quote:
Originally Posted by netwind
вот например если нет cpanel, откуда взять файл /etc/psa/.psa.shadow ?
ну собственно никто не мешает вместо ссылки на файл использовать сам пароль, который по идее есть у администратора
ИМХО докачку лучше не использовать, так как при частых обрывах связи можно своим бекапом, которые делается ночью, пока мало народа, продлить переливание до обеда, в итоге народ будет сидеть и тупить пока сервак пытается слить архивчик
заместо проверки на докачку я бы поставил себе просто напоминалку что надо проверить FTP на удачную заливку файла
в начало скрипта добавив
echo "Проверь FTP! все ли докачалось? " |sendmail adminko@adminko.pochta
@netwind
Гуру
Join Date: Aug 2005
Location: Рiдна Олбанея
Posts: 3,844
Версия vB: 3.8.x
Reputation:
Гуру 1227
Репутация в разделе: 139
0
Quote:
Originally Posted by Foxch2
ну собственно никто не мешает вместо ссылки на файл использовать сам пароль, который по идее есть у администратора
Мешает. Ты выкладываешь сценарий, который претендует быть полезным, а получается что это полуфабрикат. Как и большинство других таких сценариев.
похожий вариант, без рута, но с паролем на sql-юзера с правами на чтение баз данных в открытом виде в тексте:
====== backup.sh
#!/bin/sh
# задаем переменные с именами каталогов и архивов, юзером и его паролем для заливки на удаленный ftp
Dat=`date +"BackUp-%d-%m-%Y-(%H%M%S)"`
FName=`date +"WWWroot-backup-%d-%m-%Y"`
FtpUser=user
FtpPass=pass
Host=backupserver.no-ip.org
SqlUser=sqluser
SqlPass=sqlpass
# переходим в свой хомяк. или в каталог, где будем собирать бекап.
cd /home/username
# смотрим все доступные базы, дампим их в свой хомяк и заворачиваем каждую базу в свой архив.
for i in `/usr/local/bin/mysql -u$SqlUser -p$SqlPass -e'show databases;' | grep -v information_schema | grep -v Database` ; do
/usr/local/bin/mysqldump -u$SqlUser -p$SqlPass -l $i > `date +%Y-%m-%d`-$i.sql ; /usr/bin/tar -cjf $i.tar.bz2 `date +%Y-%m-%d`-$i.sql
done
# удаляем дампы, создаем каталожек с текущей датой в названии и мувим туда полученные архивы баз и файло из хомяка(ов) сайта(ов)
rm *.sql
tar -cjf $FName.tar.bz2 /usr/local/www/vhosts/mysite.ru/httpdocs/*
mkdir -p /home/username/$Dat
mv /home/username/*.bz2 /home/username/$Dat
# цепляемся к удаленному ftp (у меня на нестандартном порту висит - 1313), сливаем архивы и удаляем их при удачной отдаче
/usr/local/bin/lftp -p 1313 -u $FtpUser,$FtpPass $Host/ <<cmd
mput -d -E $Dat/* ======
до кучи можно и папки $Dat удалять после слива бекапа, проверив на пустоту, но я их специально не удаляю.
про докачку. у меня скрипт висит и ждет, даже если удаленный сервер выключен. как включится - получит все, что накопилось. соответственно, пока не слились архивы на ftp - локально не удаляются.
вроде проще некуда.
Luvilla
Гость
Posts: n/a
Тема перемещена в "Кандидатскую кухню" на доработку.
Foxch2, постарайтесь собрать в первом посте несколько разных сценариев бэкапа, чтобы статья получилась универсальной.