Заметки по тэгу «bash»
14 November 2018, 05:30 MSK
Удивительно, но многие разработчики не знают, как можно очень просто сделать автоматический бэкап одной или нескольких таблиц в мускуле. Восполним этот недостаток знаний.
Нам потребуется создать простой скрипт на баше, например, /var/backup.sh:
#!/bin/bash
export MYSQL_PWD='ВАШ_ПАРОЛЬ'
mysqldump -u'ВАШ_ЛОГИН' -i -c -e НАЗВАНИЕ_БД ТАБЛИЦА_1 ТАБЛИЦА_2 > /var/backups/mybackup.sql
Если вы хотите, чтобы каждый раз создавался новый файл, можно в его название включить дату и время:
#!/bin/bash
export MYSQL_PWD='ВАШ_ПАРОЛЬ'
mysqldump -u'ВАШ_ЛОГИН' -i -c -e НАЗВАНИЕ_БД ТАБЛИЦА_1 ТАБЛИЦА_2 > /var/backups/mybackup-`date +%Y-%m-%d--%H-%M-%S`.sql
Добавляем скрипт в крон (crontab -e).
Не забываем разрешить выполнение скрипта (chmod +x /var/backup.sh).
В результате выполнения скрипта вы получите файл с дампом ваших таблиц.
P.S.: чтобы восстановить бэкап из консоли:
mysql НАЗВАНИЕ_БД -u'ВАШ_ЛОГИН' -p'ВАШ_ПАРОЛЬ' < /var/backups/mybackup.sql
6 November 2018, 23:50 MSK
При разработке сайтов часто встаёт задача наладить автоматическую выгрузку файлов сайта на веб-сервер. Быстрое гугление по данной теме приводит сложные и запутанные решения, я же поделюсь очень простым. Предполагается, что у читателя есть базовые знания Linux и Git.
Итак, у вас имеется локальный сайт, гит-репозиторий и удалённый сервер с дебиан-подобным линуксом. Допустим, на сервере сайт лежит в папке /var/www/site/.
Сначала необходимо создать в репозитории новую ветку, например, deploy. Всё, что попадёт в неё, будет выгружено на сервер.
Теперь переходим к серверу. Если не установлен гит, устанавливаем:
sudo apt-get install git
Затем клонируем репозиторий в папку с сайтом (из-за особенностей гита она должна быть пуста):
cd /var/www/site/
git clone АДРЕС_РЕПОЗИТОРИЯ .
Система попросит логин и пароль.
Переключаемся на нашу специальную ветку:
git checkout deploy
Теперь можно при помощи команды git pull обновлять сайт. Но это не очень похоже на полностью автоматический способ? Идём дальше.
Во-первых, чтобы каждый раз не вводить логин и пароль, выполняем следующую команду:
git config credential.helper store
Во-вторых, настроим выполнение команды git pull раз в минуту. Для этого создаём скрипт обновления:
nano /var/www/deploy.sh
Вставляем в него следующий текст:
#!/bin/sh
cd /var/www/site/
git pull > /dev/null
Не забываем разрешить выполнение скрипта:
chmod +x /var/www/deploy.sh
Добавляем скрипт в крон:
crontab -e
В конец файла копируем строчку:
* * * * * /var/www/deploy.sh
Собственно, на этом всё. Пушите ваш код в ветку deploy на локальном хосте — он автоматически заливается на удалённый сервер.