Zitat:
|
Zitat von Littlejohny
ist das script richtig configuriert?
|
Mal noch ein paar generelle Anmerkungen zum Skript:
1) Shebang fehlt (wurde ja schon erwähnt)
2) entweder $PATH im Skript definieren, oder absolute Pfade verwenden.
NIE auf korrekte Umgebungsvariablen verlassen! Das ist böse!
3) Wenn das Skript als root laufen muss, dann muss es das auch prüfen. So z.B.:
Code:
if [ $(id -u) -ne 0 ]; then
echo "ERROR: Must be run as root! -- EXITING!" >&2
exit 1
fi
Zitat:
# Das Script
# Backup-Verzeichnis anlegen
mkdir /backup
mkdir /backup/mysql
|
4a) Sowas gehört nach /tmp/backup, oder /var/tmp/backup, oder...
Aber man arbeitet
NIE direkt auf /
4b) Umask setzen! Sonst bekommst du eventl. ein gewaltiges Sicherheitsloch!
4c) NIE einfach so davon ausgehen, dass der Befehl funktioniert hat!
Wenn dein Verz. nicht angelegt werden konnte (waurm auch immer), dann landen deine Backups irgendwo auf der Platte!
Beispiel:
Code:
if ! mkdir /tmp/backup; then
echo "ERROR: Could not create /tmp/backup -- EXITING!" > &2
exit 1
fi
Zitat:
# Sicherung der Datenbanken
mysqldump -AaCceQ -u$MYSQL_USER -p$MYSQL_PASS -r mysql.dbs
|
5) Unbedingt darauf achten, dass dein Skript 700 als Permissions hat. Sonst kann am Ende jeder lokale User dein mysql-Passwort lesen.
Am besten du fängst das ebenfalls mit einem Test im Skript ab (damit das Skript eine fette Warnung ausgibt, sobald seine eigenen File-Rechte nicht stimmen. --> Du siehst den Fehler sofort in den Logs).
<edit>
Kleiner Einschub, bevor du fragst "wie geht das:
Code:
if [ $(stat --format=%a $0 ) -ne 700 ]; then
echo "WARNING: Insecure file permissions on $0!" >&2
fi
</edit>
6) siehe 4c) Du solltest abfangen, ob das auch wirklich geklappt hat. pwd sollte danach das Verzeichnis angeben, in dem du auch sein willst.
7) Siehe 4c): Prüfen, ob das Verzeichnis auch wirklich weg ist!