Evo ti uprošćena verzija backup skripte sa jednog od mojih produkcionih servera. Backup se radi samo za baze, fajlovi mogu po potrebi da se dodaju.
Struktura foldera je sledeća (prilagodi kako tebi odgovara).
Kod:
srv/
|__backup/
|__mysql/
|__ example.com/ (folder gde se smeštaju dumpovi baze sa timestampom)
|__ scripts/
| |__backup_mysql.sh (skripta koju pokreće cronjob)
|__ protected/
|__ mysql/
|__ example.com.cnf (ekesterni konfiguracioni fajl za MySQL pristup)
backup_mysql.sh
Kod:
#!/usr/bin/env bash
# Daily MySQL backup.
curr_date=`date +%d%m%Y`-`date +%H%M%S`
script_path="/srv/scripts"
mysql_conf_path="$script_path/../protected/mysql"
backup_path="$script_path/../backup/mysql"
# example.com
mysqldump --defaults-extra-file="$mysql_conf_path/example.com.cnf" db_1 | gzip -c > \
"$backup_path/example.com/db_1-$curr_date.sql.gz"
example.com.cnf
Kod:
[client]
host = mysql.example.com
user = #korisničko ime za bazu
password = #lozinka za bazu