add ftp backup
This commit is contained in:
parent
8a049062f7
commit
f8926a4364
77
ftp-backup.sh
Normal file
77
ftp-backup.sh
Normal file
@ -0,0 +1,77 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
FTP_CREDS="/root/backup/ftpserver.login"
|
||||||
|
|
||||||
|
BACKUP_SYSTEM="bin boot dev lib mnt opt sbin usr"
|
||||||
|
BACKUP_CONFIG="etc"
|
||||||
|
BACKUP_USER="home root"
|
||||||
|
BACKUP_VAR="var"
|
||||||
|
|
||||||
|
# ------------------
|
||||||
|
|
||||||
|
umask 0077
|
||||||
|
TODAY=`date +%Y-%m-%d`
|
||||||
|
OLDDAY=`date +%Y-%m-%d -d '-6 months'`
|
||||||
|
TMPDIR=`mktemp -d`
|
||||||
|
|
||||||
|
# ------------------
|
||||||
|
|
||||||
|
function create_backup {
|
||||||
|
echo "## "`date`
|
||||||
|
target=$1
|
||||||
|
shift
|
||||||
|
rm -rf $target
|
||||||
|
tar --totals -czpf $target -C / $@ 2>&1
|
||||||
|
/usr/bin/md5sum -b $target
|
||||||
|
echo
|
||||||
|
}
|
||||||
|
|
||||||
|
function ftp_push_delete {
|
||||||
|
echo "## "`/bin/date`
|
||||||
|
target=$1
|
||||||
|
shift
|
||||||
|
|
||||||
|
# workaround -X %s bug in ncftpput (do not use absolute local paths)
|
||||||
|
pushd . &> /dev/null
|
||||||
|
cd $TMPDIR
|
||||||
|
for file in $@; do
|
||||||
|
files="$files `/usr/bin/basename $file`"
|
||||||
|
done
|
||||||
|
/usr/bin/ncftpput -V -X "SITE CHMOD 600 %s" -f $FTP_CREDS $target $files
|
||||||
|
popd &> /dev/null
|
||||||
|
# end workaround
|
||||||
|
|
||||||
|
echo
|
||||||
|
}
|
||||||
|
|
||||||
|
function ftp_list {
|
||||||
|
echo "## "`date`
|
||||||
|
ftp_host=`/usr/bin/awk '/host/{ print $2 }' $FTP_CREDS`
|
||||||
|
/usr/bin/ncftpls -l -f $FTP_CREDS ftp://${ftp_host}/
|
||||||
|
echo
|
||||||
|
}
|
||||||
|
|
||||||
|
function ftp_delete {
|
||||||
|
echo "delete $1"
|
||||||
|
ftp_host=`/usr/bin/awk '/host/{ print $2 }' $FTP_CREDS`
|
||||||
|
/usr/bin/ncftpls -l -f $FTP_CREDS -X "DELE $1" ftp://${ftp_host}/ &> /dev/null
|
||||||
|
}
|
||||||
|
|
||||||
|
# ------------------
|
||||||
|
|
||||||
|
create_backup $TMPDIR/backup-${TODAY}-system.tar.gz $BACKUP_SYSTEM
|
||||||
|
create_backup $TMPDIR/backup-${TODAY}-config.tar.gz $BACKUP_CONFIG
|
||||||
|
create_backup $TMPDIR/backup-${TODAY}-user.tar.gz $BACKUP_USER
|
||||||
|
create_backup $TMPDIR/backup-${TODAY}-var.tar.gz $BACKUP_VAR
|
||||||
|
|
||||||
|
ftp_push_delete / $TMPDIR/backup-${TODAY}-*.tar.gz
|
||||||
|
|
||||||
|
ftp_delete backup-${OLDDAY}-system.tar.gz
|
||||||
|
ftp_delete backup-${OLDDAY}-config.tar.gz
|
||||||
|
ftp_delete backup-${OLDDAY}-user.tar.gz
|
||||||
|
ftp_delete backup-${OLDDAY}-var.tar.gz
|
||||||
|
|
||||||
|
ftp_list
|
||||||
|
|
||||||
|
echo "FTP backup completed."
|
||||||
|
rm -rf $TMPDIR
|
4
ftpserver.login
Normal file
4
ftpserver.login
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
# ftp-server account data (chmod 0600!)
|
||||||
|
host ftp.server.net
|
||||||
|
user bla
|
||||||
|
pass blub
|
Loading…
Reference in New Issue
Block a user