Скрипт для бекапа сервера 2
Мар 27
Первая часть была тут .
Усовершенствованный скрипт для бекапа. Добавлено разделение по базам данных.
#!/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/*

Мар 27 at 22:31
Саня – маладец. Сила джедая всегда с тобой будет))
Апр 29 at 02:40
Не подскажешь я хочу сделать такую вещь. Бэкап базы данных. Имя бэкапа – текущая дата – время. С этим я разберусь, но хочу сделать еще и скрипт, который восстанавливал бы последний имеющийся бекап. Как в скрипте взять последний созданный файл и передать его имя в переменную?
Апр 29 at 11:24
По коду щас точно не скажу, алгоритм примерно такой:
получить список файлов из директории с бекапами в массив $Array
rsort($Array);
$Array[0] = последний дамп, который ты сделал.
exec(«mysqldump -u user -ppass dbname < $Array[0]«);
Вот как то так.
Апр 29 at 11:25
это под php, для линуха впринципе не суть важно на чем скрипт, на баше или на пхп
Апр 29 at 13:20
Хотелось бы все таки на баше сделать.
Для поиска последнего созданного файла использую такую конструкцию.
#!/bin/sh
for i in $(ls -rt);do
done
echo $i
Апр 29 at 13:21
Кстати, если делать скрипт на пхп, то первая строчка как будет выглядеть? где искать исполняемый файл?
Апр 29 at 13:46
По поводу баша – пхп из под шелла работает не медленнее.
Для пхп надо искать где он стоит
which php
whereis php
обычно она такая #!/usr/bin/php
Прописывать не обязательно, можно запускать командой php ./script.php
ПыСы
Твоя конструкция на пхп под шелл
$last_file = exec(«ls | sort –reverse»);
Все проще чем я думал
Янв 12 at 19:09
сварганил свой первый бекап скрипт, который перед заливкой файлов на фтп – кодирует их
сильно не казните … знаю что чуток корявый вышел…..
Янв 12 at 22:27
teaseo, ну норм, че ))
С удалением файлов не стал поэму писать в одну строку, через баш сделал ))
Ну и самое основное – а где бекап то? )) Сейчас там только закодировать гзип и залить на фтп ))
Янв 13 at 10:36
я использую 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-й коммандой
Янв 13 at 11:43
Попробуй через scp сделать, он вроде создает папки при их отсутствии.
Янв 13 at 11:53
хех scp не всем дают ..,
кстатит как ты добавил к вордпресу .html (в урле)?
Янв 13 at 13:05
наверно если шелл есть, то и scp есть
wp-admin/options-permalink.php–>
Произвольно–>
/%postname%.html или что душе угодно ставишь