Shell script за резервни копия на MySQL, уеб директорията и трансфер на файлов сървър

By | неделя май 24th, 2015

bash-148836_1280

Shell script за резервни копия на MySQL, уеб директорията и трансфер на файлов сървър – Личен блог на Любомир Бойков

Сега ще ви покажа как може лесно и бързо да си пуснете едно скриптче, което балгодарение на него ще правите резервни копия на вашите MySQL бази данни и Уеб директории под Линукс.

Кода е написан от мен и го ползвам на моите сървъри. Всичкото което трябва да имате и да знаете е как може да подкарате shell script-а под линукс и как се зарежда в crontab-а, под „root“, защото ще изпълняваме команди, които само „root“ потребителя има достъп.

Първото нещо е да качите скрипта на подходящо място. Аз лично предпочитам това място да е в „/opt/scripts“. И ето линка към скрипта https://github.com/lubakka/shell-backup

И така след като го свалите на сървъра пърова трябва да му дадете атрибут „х“, чрез командата „chmod“ за да може да се изпълни. Първо трябва да влезнем в директорията и да изпълним следната команда

След това може да го изпълните и да видите дали всичко е наред

Трябва да ви се покаже това:

Щом ви го е показало това, значи висчко е наред и можем да сложим в crontab за изпълнени. Но преди това трябва да направите малко насторйки, редактирайте файла с вашиа любим редактор, аз лично ползвам „vim“, но ще го показа с „nano“ защото в по новите дистрибуции трябва да се инсталира допълнително „vim“ редактора.

Въведете следното за да го отворите в редактора

Ще трябва да видите това:

config

Това което е оградено с червено, то е задължителното за редактиране. Трябва да въведете следните стойности:

  • USER=“root“ – потребителя на MySQL със съответните права
  • PASS=“123456″ – паролата на потребителя на MySQL
  • MYSQLHOST=“localhost“ – Хоста на който се намира MySQL сървъра, съответно може да е IP/HOST
  • SSHUSER=“lubakka“ – потребителското име на отдалечения сървър за SSH връзката
  • BACKUPSERVER=“192.168.1.132″ – Хоста или IP-то на отдавечения сървър за SSH връзката
  • BACKUPSERVERPATH=“/BACKUP“ – пълния път до мястото където се архивират резервините копия на отдалечения сървър
  • KEY=“/home/lubakka/.ssh/id_rsa“ – SSH ключа за идентификация, който трябва да се генерира от вас
  • BACKUPDIR=“/BACKUP“ – пълния път до мястото където ще се пазят резервните копия на локалния сървър
  • VAR=“/var/www“ – пълния път до уеб директорята, която ще се архивира.

Останалите променливи показани на по-горния екран са възможни за редакция.

След това запишете промените, със следната команда CTRL+x и след това ще ви пита дали искате да запазите промените

save

като на потвърдите с натискане на бутона „Y“ и след това „Enter“.

Сега можете да направите едно резервно копие за да видите дали всичко е минало както трябва със следната команда:

Ако подобно на това ви изкара без никакви грешки значи всичко е наред. След това изпълнение трябва преблизително да имате тази структора на директоряита

Ако до тука изглежда подобно, но с вашите файлове и бази, значи можете да минте на последната стъпка и тя е да сложите това изпълнение към crontab-a за да се изпълнява по график.

За да сложите в crontаb-a трябва да изпълните следните дейстивя с командите

И трябва да ви се покаже това

crontab

При мен е на всеки ден в 02:00 часа да се правят тези резервни копия

Ползвам този начин на изпълнение защото се изпълнява по следния начин:

  1. -m – извършва се резервни копия на базата данни на MySQL-a
  2. -w – извърпва се резерно копие на уеб директорията „/var/www“
  3. -t – синхронизира се локалното копие с това на отдалечения сървър

Според мен това е много добра опция защото първо се правят резервните копия и после се синхронизират с отдалечение съръвр. Винаги може да използвате опциите по ваш си начин. Има още една опция която е за игнориране на дадени бази данни от MySQL-а, и тя е „-i“ със задължителна стойност, която е текст и задължително с опцията „-m“.

По този начин казва ме, че не искаме да правим резервно копие на базада „test“ и след това да изпълни командата за архив.

Това е всичко очаквам вашите комантари и критики. За по надатък ще гелдам да подобря нещата и да добавя и нови неща в този „backup.sh“

Поздрави и приятно кодене

 

Comments

comments

Вашият коментар