Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- USER="user"
- PASSWORD="pass"
- DUMP="temp"
- DIRWEB="src"
- DATE=`date +%Y-%m-%d`
- TIME=`date +%H-%M-%S`
- OUTPUT=$DUMP/$DATE
- PASSZIP="zip_pass"
- REMOTE_DST_DIR="dir"
- DST_HOST="srv"
- BACKUP_RETENTION_DAILY=120
- if ! [ -d $OUTPUT ]; then
- mkdir -p $OUTPUT
- chmod -R 755 $OUTPUT
- fi
- function DB
- {
- databases=`mysql --user=$USER --password=$PASSWORD -e "SHOW DATABASES;" | tr -d "| " | grep -v Database`
- for db in $databases; do
- if [[ "$db" != "information_schema" ]] && [[ "$db" != _* ]] ; then
- cd $OUTPUT
- echo "Dumping database: $db"
- mysqldump --force --opt --user=$USER --password=$PASSWORD --databases $db > $db.$DATE.$TIME.sql
- zip -P $PASSZIP $db.$DATE.$TIME.zip $db.$DATE.$TIME.sql
- rm $db.$DATE.$TIME.sql
- fi
- done
- }
- function WEB
- {
- WEBDIRS=`cd $DIRWEB && ls -d *`
- for WEBDIR in $WEBDIRS; do
- cd $DIRWEB
- echo "Dumping site: $WEBDIR"
- zip -P $PASSZIP -r $OUTPUT/$WEBDIR.$DATE.$TIME.zip $WEBDIR
- done
- }
- function ZIP
- {
- cd $OUTPUT
- echo "ZIP: SITE.$DATE.$TIME.zip"
- zip -P $PASSZIP SITE.$DATE.$TIME.zip *.zip -x "SITE.*.zip"
- ZIPS=`cd $OUTPUT && ls *.zip`
- for zip in $ZIPS; do
- if [[ "$zip" != SITE.*.zip ]]; then
- echo "RM ZIP: $zip"
- rm $OUTPUT/$zip
- fi
- done
- }
- function BACKUP
- {
- cd $OUTPUT
- echo "BACKUP: SITE.$DATE.$TIME.zip"
- echo "put -r SITE.$DATE.$TIME.zip $REMOTE_DST_DIR" | sftp $DST_HOST
- ssh -t -t $DST_HOST "cd $REMOTE_DST_DIR ; ls -t | grep SITE | sed -e 1,"$BACKUP_RETENTION_DAILY"d | xargs -d '\n' rm -R > /dev/null 2>&1"
- cd $DUMP
- ls -t | tail -n +3 | xargs rm -rf
- }
- DB
- WEB
- ZIP
- BACKUP
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement