Cześć! Ja takim skryptem kiedyś robiłem:
sudo nano /bin/zzz_mysql.sh
Skrypt:
#!/bin/bash
MUSER='sa'
MPASS='my_secret_password'
MHOST='127.0.0.1'
MYSQL="/usr/bin/mysql"
MYSQLDUMP="/usr/bin/mysqldump"
MKDIR="/bin/mkdir"
RM="/bin/rm"
GZIP="/bin/gzip"
DATE="/bin/date"
SED="/bin/sed"
DEST="/home/backup/databases/$(date +"%Y")"
[ ! -d "$DEST" ] && $MKDIR -p "$DEST"
DBS="$($MYSQL -u $MUSER -h $MHOST -p$MPASS -Bse 'show databases')"
DBS="$($SED -e 's/performance_schema//' -e 's/information_schema//' <<<$DBS)"
for db in $DBS
do
tTime=$(date +"%Y-%m-%d_%H%M")
FILE="$DEST/${db}_${tTime}.gz"
if [[ ${db} != "information_schema" ]] && [[ ${db} != "performance_schema" ]] && [[ ${db} != "mysql" ]];
then
$MYSQLDUMP -u $MUSER -h $MHOST -p$MPASS $db | $GZIP -9 > $FILE
fi
if [ ${PIPESTATUS[0]} -ne "0" ];
then
echo "Polecenie $MYSQLDUMP zwróciło bład ${PIPESTATUS[0]}."
exit 1
else
echo "Kopia bazy danych $db wykonana pomyślnie."
fi
done
Na koniec
sudo su -
chmod +x /bin/zzz_mysql.sh
Przywracanie bazy z kopii
mysql -p -u root
mysql> CREATE DATABASE zzz_test;
Ważne! Po -p hasło musi być bez spacji!
sudo mysql -u sa -h 192.168.1.18 -pmy_secret_password zzz_test < /backup/zzz_system
M.