Hier ein kleines Script, was dazu benutzt werden kann, täglich alle SQL Tabellen zu optimieren und fßr ein Backup zu archivieren.

Shellscript z.B. per Cronjob täglich ausfĂźhrbar… Datei sollte auf Read-Only fĂźr ROOT gesetzt werden, da das Root-SQL Passwort im Klartext zu entnehmen ist. Übernahme auf eigene Gefahr, keine Gewährleistung auf Funktion!

Cronjob-Zeile (Bsp.): 33 02 * * * sh /root/opt_backup_sql.sh > /dev/null 2>&1

Code fĂźr /root/opt_backup_sql.sh:

# little MySQL script - optimize and backup tables...
b="/tmp/sqlbackup" # backup directory
PWD="blubb" # root passwort for sql table dump statemend
# nothing below has to be changed
MOVETO=”/backup” # directory where backup should be placed in
logger “sql opt and backup: starting”
export d=$(date +%Y%m%d)
mkdir -p $b
mkdir -p $b/$d
for a in `echo “show databases” | mysql -uroot -p$PWD |grep -v Database`;
do
mkdir -p $b/$d/$a
for i in `echo “show tables” | mysql -uroot -p$PWD $a|grep -v Tables_in_`;
do
echo “optimize table $i” | mysql -uroot -p$PWD $a|grep -v Msg_text;
mysqldump –add-drop-table –allow-keywords -q -a -c -uroot -p$PWD $a $i > $b/$d/$a/$i.sql
rm -f $b/$d/$a/$i.sql.gz
gzip $b/$d/$a/$i.sql
done
done
`tar cf $d.db.tar $b`
`gzip $d.db.tar`
rm -rf $b
mv $d.db.tar.gz $MOVETO
logger “sql opt and backup: done”