Первая часть была тут .
Усовершенствованный скрипт для бекапа. Добавлено разделение по базам данных.
#!/bin/sh
BACKUPDATE=`date +%Y-%m-%d`;
REMOTESERVER=11.22.33.44
HOSTNAME=`hostname`
BACKUPDIR=/backup/${HOSTNAME}_${BACKUPDATE}mkdir -p ${BACKUPDIR}
for i in `mysql -u user -ppass -e’show databases;’ | grep -v information_schema | grep -v Database`; do mysqldump —default-character-set=koi8r -u user -ppass $i | gzip -9 > /root/mysql/$i-`date +%Y-%m-%d`.gz.sql;done
tar -czf ${BACKUPDIR}/mysql-`date +%Y-%m-%d`.tar.gz /root/mysql/*
tar -czf ${BACKUPDIR}/home-`date +%Y-%m-%d`.tar.gz /home/*
tar -czf ${BACKUPDIR}/apache-confs-`date +%Y-%m-%d`.tar.gz /etc/httpd/conf/*
tar -czf ${BACKUPDIR}/named-zones-`date +%Y-%m-%d`.tar.gz /var/named/*
tar -czf ${BACKUPDIR}/named-conf-`date +%Y-%m-%d`.tar.gz /etc/named.conf
scp -Cr /backup/${HOSTNAME}_${BACKUPDATE} root@${REMOTESERVER}:/backup/
rm -f /root/mysql/*
18 комментариев
Саня — маладец. Сила джедая всегда с тобой будет))
Не подскажешь я хочу сделать такую вещь. Бэкап базы данных. Имя бэкапа — текущая дата — время. С этим я разберусь, но хочу сделать еще и скрипт, который восстанавливал бы последний имеющийся бекап. Как в скрипте взять последний созданный файл и передать его имя в переменную?
По коду щас точно не скажу, алгоритм примерно такой:
получить список файлов из директории с бекапами в массив $Array
rsort($Array);
$Array[0] = последний дамп, который ты сделал.
exec(«mysqldump -u user -ppass dbname < $Array[0]»);
Вот как то так.
это под php, для линуха впринципе не суть важно на чем скрипт, на баше или на пхп
Хотелось бы все таки на баше сделать.
Для поиска последнего созданного файла использую такую конструкцию.
#!/bin/sh
for i in $(ls -rt);do
done
echo $i
Кстати, если делать скрипт на пхп, то первая строчка как будет выглядеть? где искать исполняемый файл?
По поводу баша — пхп из под шелла работает не медленнее.
Для пхп надо искать где он стоит
which php
whereis php
обычно она такая #!/usr/bin/php
Прописывать не обязательно, можно запускать командой php ./script.php
ПыСы
Твоя конструкция на пхп под шелл
$last_file = exec(«ls | sort —reverse»);
Все проще чем я думал
сварганил свой первый бекап скрипт, который перед заливкой файлов на фтп — кодирует их
сильно не казните … знаю что чуток корявый вышел…..
teaseo, ну норм, че ))
С удалением файлов не стал поэму писать в одну строку, через баш сделал ))
Ну и самое основное — а где бекап то? )) Сейчас там только закодировать гзип и залить на фтп ))
я использую virtualmin.com , бекы он делает, но кодировать не умеет и вот так я ему помог тоесть твой скрипт можно вмести с эти соединить, кому надо будет, а вот из минусов то что
curl -v -T «$myfile».out ftp://login:»FTppassThere»@ftpserveraddres.com/${BACKUPDATE}/»$myfile» -Q «MKD ${BACKUPDATE}»;
curl -v -T «$myfile».out ftp://login:»FTppassThere»@ftpserveraddres.com/${BACKUPDATE}/»$myfile» ;
тоесть логика та что
1)залить в папку, создать её
2)залить в папку, (не создавать)
тоесть если это первый раз то папка создаётся и заливается а второй бекап уже при 1 вызовет ошибку так как папка создана,
а зато успешно будет заливатся 2-й коммандой
Попробуй через scp сделать, он вроде создает папки при их отсутствии.
хех scp не всем дают ..,
кстатит как ты добавил к вордпресу .html (в урле)?
наверно если шелл есть, то и scp есть
wp-admin/options-permalink.php—>
Произвольно—>
/%postname%.html или что душе угодно ставишь
[…] Понадобилось восстановить резервную базу из бекапа сервера. […]
очень простенький, лучше бы разбивать бд в разные файлы
Завраб, разбивать ниразу не лучше. И качать один файл удобнее и импортировать.
[…] восстанавливал сайт из бекапа (бекап кстати делаю вот этим скриптом), архиватор робко отказался распаковывать […]
[…] восстанавливал сайт из бекапа (бекап кстати делаю вот этим скриптом), архиватор робко отказался распаковывать […]