Вед-дев, Сео, Манимейкинг

Бэкап файлов сайтов при помощи bash

Сегодня я решил начать познавать азы bash кодинга. И вот мой первый скрипт создания бэкапов для сайтов (архивация папок с доменами).

#!/bin/bash

sitedir="$HOME/domains"
logs="$HOME/site_backups/log"

tbackups="$HOME/site_backups/today"
ybackups="$HOME/site_backups/yesterday"

echo "`date`" > $logs/backups.log

rm $ybackups/* >> $logs/backups.log
mv $tbackups/* $ybackups/ >> $logs/backups.log

cd "$sitedir"

for i in */ ; do
    sitefolder="$HOME/domains/${i%%/}/public_html"
    if [ -d "$sitefolder" ]
    then
        ( cd "$i" && tar -czf $tbackups/${i%%/}".tar.gz" public_html ; )
        echo -e "\r\nBackup of ${i%%/} successfull" >> $logs/backups.log
    fi
done

mail -s "Your TAR backups is ready!" yourmail@gmail.com <<< "Today: "`date`"
TAR backups of every domain is ready."


exit 0

Скрипт делает архивы всех папок с доменами у которых внутри есть папка public_html. Например, domain.com/public_html.

${i%%/} - это убирает "/" после имени домена.

\r\n - перенос строки для Windows.

Не забудьте создать все необходимые папки перед запуском скрипта.

В backups.log оохраняются сообщения об успешной архивации каждого сайта.

По окончанию выполнения скрипта - будет выслан email на ваш почтовый ящик.



Комментарии (0)

Разделы

Подписаться

Подписка на RSS-лента последние записи из Блога

Комменты

  • Olzhas 1 год 1 месяц назад
    Спасибо. С Новым Годом! 
  • Den 1 год 2 месяца назад
    В первой функции, при создании переменной $li_previous нужно поменять '←' с NULL, в $li_next сделать тоже самое. 
  • Гость 1 год 2 месяца назад
    Если все ровно так как было описано, то нет никаких сомнений что домен увел сам регистратор. Потому что вероятность того 
  • Валерий 1 год 3 месяца назад
    да можно делать импорт-экспорт только лишь в оболочке на входя на mysql сервер 
  • admin 1 год 3 месяца назад
    Валерий, а зачем вам именно так делать экспорт? Если я не ошибаюсь, то там нет какой-либо команды чтобы сделать экспорт 
  • Валерий 1 год 3 месяца назад
    захожу на mysql через ssh по команде  
  • admin 1 год 3 месяца назад
    Добрый вечер, какой у вас клиент? 
  • Валерий 1 год 3 месяца назад
    Здравстуйте, есть команда чтобы сделать экспорт базы внутри mysql клиента? 
  • Eduard 1 год 4 месяца назад
    Видать, домен хороший был. Заявление пробывали писать на мошенника? 
  • Stas 1 год 5 месяцев назад
    Ошибка в ключе квантификатора - replace(/будешь|пить/ig, "хлеб"); Указать -g для прохода по всем совпадениям!