Могутність і потенціал операційної системи Linux проявляється, коли ти ставиш собі досить складне завдання, за годину-дві пишеш скрипт для його реалізації, запускаєш, налагоджуєш, запускаєш і все працює, роками, без глюків і підвисань… І ніякого комерційного програмного забезпечення.
Вихідні дані
Є встановлена операційна система Linux, система управління базами даних mysql, в якій працює база даних infotech, користувач бази даних – inuser, пароль – qwerty (для прикладу). Завдання – написати скрипт для резервного копіювання бази даних з подальшим архівуванням архіватором tar. Термін зберігання архівів баз не більше 30 днів. Резервування виконувати по понеділках, середах, п’ятницях та неділях о 1.00.
Реалізація
Створюємо папку для зберігання архівів:
#mkdir -p /backup/infotech
Пишемо скрипт для поставленого завдання (bash):
#!/bin/bash
# Шлях до папки з архівами
backup_dir="/backup/infotech"
#Шаблон для створюваного архіву з датою створення архіву
backup_filename= infotech-`date +%Y-%m-%d`
#Повне ім'я архіву
archive_filename=$backup_filename.tar.gz
#Термін зберігання архівів
Backup_days=30#Створюємо дамп бази даних, використовуючи користувача з повними правами на базу даних
#(inuser для цього прикладу)
mysqldump -u iuser -pqwerty infotech > $backup_dir/$backup_filename.sql
#Архивуємо створений дамп
tar -C $backup_dir -czf $backup_dir/$archive_filename $backup_dir/$backup_filename.sql
#Вилучаємо дамп бази
rm $backup_dir/$backup_filename.sql
#Знаходимо та видаляємо всі архіви терміном створення понад 30 днів
find $backup_dir/infotech-* -mtime +$Backup_days -exec rm -v {} \; pre>
Додаємо завдання до cron:
#crontab -e0 1 * * 0,1,3,5 /шлях_до_файлу_скрипту
У дозволах не забудьте виставити виконання для користувача root.
May 20, 2013