Lieber Besucher, herzlich willkommen bei: Ubuntu-Forum & Kubuntu-Forum | www.Ubuntu-Forum.de. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.
Benutzerinformationen überspringen
User
Registrierungsdatum: 04.06.2005
Derivat: Kein Ubuntu-Derivat
Version: gar kein Ubuntu
Architektur: 64-Bit PC
Desktop: anderer Desktop
Andere Betriebssysteme: Arch Linux
Quellcode |
|
1 |
backup_skript.sh --mysql-password PASSW --mysql-login root /ZIEL/backup.sql |
Quellcode |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 |
#!/bin/bash VERSION=0.1.1 MYSQL=mysql MYSQLDUMP=mysqldump usage() { cat << EOF USAGE: $0 [OPTIONS] [PATH|FILENAME] This script creates backup of zarafa database with mysqldump and compress the output file. By default it'll create a backup file in current working path with default filename. The default filename contains timestamp like zarafa-mysql-backup_YYYY-MM-DD_hhmm.gz if you just enter path, then the path will be used with default filename OPTIONS: --mysql-password PASSWORD Password for zarafa database in MySQL (not recommended as parameter because it'll echoed in commandline & stored in bash-history) --mysql-login USERNAME Username for zarafa database in MySQL --max-allowed-packet MAX_ALLOWED_PACKET Max allowed Packet in MySQL (e.g. 25M) -h, --help Show this help text -V, --version Display version information EOF } # get comandline parameters while [[ $1 == -* ]]; do case "$1" in -h|--help) usage exit 0 ;; --mysql-host*) if (($# > 1));then MYSQLHOST=$2; shift; else echo "$1 requires an argument" exit 1 fi shift;; -l|--mysql-login) if (($# > 1));then MYSQLUSER=$2; shift; else echo "$1 requires an argument" exit 1 fi shift;; --max-allowed-packet) if (($# > 1));then MAX_ALLOWED_PACKET=$2; shift; else echo "$1 requires an argument" exit 1 fi shift;; -p|--mysql-password) if (($# > 1));then MYSQLPWD=$2; shift; else echo "$1 requires an argument" exit 1 fi shift;; -V|--version) echo $0 Version $VERSION exit 0 ;; -*) echo "Invalid option: $1" >&2 usage exit 1 ;; --) shift; break;; esac done # path & filename if [ -z $1 ]; then BACKUPFILE=./zarafa-mysql-backup_`date +%Y-%m-%d_%H%M`.gz else if [[ -d $1 || $1 = */ ]]; then BACKUPFILE=$1/zarafa-mysql-backup_`date +%Y-%m-%d_%H%M`.gz else BACKUPFILE=$1 fi fi # mysql parameters MYSQLHOST=${MYSQLHOST:-localhost} if [ -z $MYSQLUSER ]; then read -p "Please enter username for MySQL (zarafa DB): " MYSQLUSER if [ -z $MYSQLUSER ]; then echo "Error: No username entered!" exit 1 fi fi if [ -z $MYSQLPWD ]; then stty -echo read -p "Please enter password for MySQL (zarafa DB): " MYSQLPWD echo stty echo fi # CREATE MYSQL BACKUP COMMAND="$MYSQLDUMP -u$MYSQLUSER -p$MYSQLPWD -h$MYSQLHOST" if [ "$MAX_ALLOWED_PACKET" ]; then COMMAND="$COMMAND --max_allowed_packet=$MAX_ALLOWED_PACKET" fi COMMAND="$COMMAND --single-transaction --skip-opt --quick zarafa" echo Please wait, it may take some minutes. It depends on size of zarafa database. $COMMAND | /bin/gzip > $BACKUPFILE; |
Benutzerinformationen überspringen
User
Registrierungsdatum: 25.01.2009
Derivat: Ubuntu
Architektur: 32-Bit PC
Andere Betriebssysteme: Linux from Scratch (2.6.29.6) mit Gnome, Debian Lenny
Zitat
Wie könnte denn ein Skript aussehen, das zweistufig aussieht und erst den Dump erstellt und dann (mittels FTP oder temporärem Mount) die erstellte Datei verschiebt?
Zitat
#!/bin/bash
backup_skript.sh --mysql-password PASSW --mysql-login root /tmp/mysql_bak.sql
scp /tmp/mysql_bak.sql deinuser@deinserver:/verzeichnis/zu/backup/auf/server/bak.sql
Benutzerinformationen überspringen
User
Registrierungsdatum: 25.01.2009
Derivat: Ubuntu
Architektur: 32-Bit PC
Andere Betriebssysteme: Linux from Scratch (2.6.29.6) mit Gnome, Debian Lenny
Quellcode |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
#!/bin/bash REMOTE_DIR="/pfad/von/stick/auf/server" HOST='example.com' USER='user_null' PASSWD='1234' #backup erstellen backup_skript.sh --mysql-password PASSW --mysql-login root /tmp/mysql_bak.sql #hochladen per ftp ftp -n -v $HOST << EOT ascii user $USER $PASSWD prompt put /tmp/mysql_bak.sql $REMOTE_DIR/mysql_bak.sql bye EOT #lokales backup löschen rm /tmp/mysql_bak.sql |
Benutzerinformationen überspringen
User
Registrierungsdatum: 25.01.2009
Derivat: Ubuntu
Architektur: 32-Bit PC
Andere Betriebssysteme: Linux from Scratch (2.6.29.6) mit Gnome, Debian Lenny
Wie könnte ich denn das Skript noch erweitern, dass ich immer 3 Backups habe und nicht immer das backup überschrieben wird?
Quellcode |
|
1 |
put /tmp/mysql_bak.sql $REMOTE_DIR/mysql_bak.sql |
Quellcode |
|
1 2 3 4 |
delete $REMOTE_DIR/mysql_bak.sql.2 rename $REMOTE_DIR/mysql_bak.sql.1 $REMOTE_DIR/mysql_bak.sql.2 rename $REMOTE_DIR/mysql_bak.sql $REMOTE_DIR/mysql_bak.sql.1 put /tmp/mysql_bak.sql $REMOTE_DIR/mysql_bak.sql |
Benutzerinformationen überspringen
User
Registrierungsdatum: 25.01.2009
Derivat: Ubuntu
Architektur: 32-Bit PC
Andere Betriebssysteme: Linux from Scratch (2.6.29.6) mit Gnome, Debian Lenny
nein mit dieser methode wird das schwierig. kannst es ja erweitern, damit es mehr als nur 3 macht.Zitat
Gäbe es eine Möglichkeit das ganze so zu erweitern (mit Schliefe o.ä.), dass ich immer X alte Versionen habe und nicht "nur" 3?
Quellcode |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
#!/bin/bash REMOTE_DIR="/html" HOST='host' USER='ftp_user' PASSWD='passwd' MAX_FILES=1 time=`date +%s` typeset -i line=0 ftp -n $HOST > /tmp/txt.ftp << EOT user ${USER} ${PASSWD} cd ${REMOTE_DIR} ls *.sql bye EOT cat /tmp/txt.ftp | tr -s " " | cut -f9 -d " " > /tmp/ls.ftp sort -r /tmp/ls.ftp > /tmp/all.ftp while read file do if [ $line -ge $MAX_FILES ] then echo ${file} >> /tmp/rm_files.ftp fi line=${line}+1 done < /tmp/all.ftp echo "open $HOST user $USER $PASSWD binary cd $REMOTE_DIR" > /tmp/ftp.$$ while read file do echo "delete $file" >> /tmp/ftp.$$ done < /tmp/rm_files.ftp echo "quit" >> /tmp/ftp.$$ ftp -ivn < /tmp/ftp.$$ rm /tmp/ftp.$$ /tmp/all.ftp /tmp/rm_files.ftp /tmp/txt.ftp #backup erstellen backup_skript.sh --mysql-password PASSW --mysql-login root /tmp/mysql_bak.sql #hochladen per ftp ftp -n -v $HOST << EOT ascii user $USER $PASSWD prompt put /tmp/mysql_bak_${time}.sql $REMOTE_DIR/mysql_bak.sql bye EOT #lokales backup löschen rm /tmp/mysql_bak.sql |
Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von »Frosti« (01.11.2009, 23:12)
Sponsorenwerbung: |
Hardware, Computer, PCs, Notebooks & Laptops mit Linux |
Forensoftware: Burning Board®, entwickelt von WoltLab® GmbH
Individuelle Notebooks Laptops - Individuelle Computer PCs - Linux Notebooks & Computers
Lastminute - Ubuntu Linux - Abmahnung - Geek und Nerd Shirt Shop
T-Shirts - sanierung wien