From 545004f74bc321ead872020e15581895766c6c53 Mon Sep 17 00:00:00 2001 From: Niklas Date: Tue, 28 Feb 2017 17:29:58 +0100 Subject: [PATCH] added FTP uploader --- backup/thetown/ftp.sh | 94 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 backup/thetown/ftp.sh diff --git a/backup/thetown/ftp.sh b/backup/thetown/ftp.sh new file mode 100644 index 0000000..90606de --- /dev/null +++ b/backup/thetown/ftp.sh @@ -0,0 +1,94 @@ +#!/bin/bash +# /home/the-town/tools/ftp.sh -s /home/the-town/server/build/backups/ -n MapsBackup -d true + +#Einstellungen + +STARTPATH=${pwd} +DATE=$(date +%Y-%m-%d_%H-%M-%S) + +#Params with Arguments +while getopts "s:n:d:t" opts; do + case ${opts} in + s) SOURCE=${OPTARG} ;; + n) BACKUPNAME=${OPTARG} ;; + d) DELETE=true ;; + t) TARBALL=true ;; + \?) echo "Invalid option: -$OPTARG" + exit 1 + ;; + :) echo "-$OPTARG bruacht Argumente" + exit 1 + ;; + esac +done + +FTP_HOST= +FTP_NAME= +FTP_PASSWD= + +#Checks + +if [ -z "$SOURCE" ]; then + if [ -z "$BACKUPNAME" ]; then + echo " === EasyFTP Uploader by Niklas Schütrumpf ===" + echo " Available Parameter: -s, -n, -d, -t" + echo " -s Absolute Source Path" + echo " -n Backup Path on FTP Server" + echo " -d Delete File after upload" + echo " -t Create Tarball before upload" + exit 1 + fi +fi + +if [[ "$SOURCE" != /* ]]; then + echo "Use Absolute Path" + exit 1 +fi + +if [[ ! -d "$SOURCE" ]]; then + if [[ ! -f "$SOURCE" ]]; then + echo "File or Directory does not exists" + exit 1 + fi +fi + +if [ ! -z "$BACKUPNAME" ]; then + if [[ "$BACKUPNAME" != */ ]]; then + BACKUPNAME=$BACKUPNAME"/" + fi +else + BACKUPNAME="" +fi + +BACKUPNAME="${BACKUPNAME/DATE/$DATE}" + + +#logik +if [[ -d "$SOURCE" ]]; then + echo "Uploading Directory... $SOURCE" + cd $SOURCE + if [ "$TARBALL" = true ]; then + TAR=`basename "$SOURCE"` + TARBALL=$TAR".tar.gz" + tar cjf $TARBALL * + curl -T $TARBALL ftp://$FTP_HOST/$BACKUPNAME --user $FTP_NAME:$FTP_PASSWD --ftp-create-dirs + rm $TARBALL + else + if [ "$DELETE" = true ]; then + find . -type f -exec sh -c 'curl --ftp-ssl -k -P - --user '$FTP_NAME':'$FTP_PASSWD' --ftp-create-dirs -T $0 ftp://'$FTP_HOST'/'$BACKUPNAME'"$0" && rm "$0"' {} \; + else + find . -type f -exec curl --ftp-ssl -k -P - --user $FTP_NAME:$FTP_PASSWD --ftp-create-dirs -T {} ftp://$FTP_HOST/$BACKUPNAME{} \; + fi + fi +elif [[ -f "$SOURCE" ]]; then + echo "Uploading File... $SOURCE" + curl --ftp-ssl -k -P - -T $SOURCE ftp://$FTP_HOST/$BACKUPNAME --user $FTP_NAME:$FTP_PASSWD --ftp-create-dirs + if [ "$DELETE" = true ]; then + rm $SOURCE + fi +else + echo "$SOURCE is not valid" + exit 1 +fi + +cd $STARTPATH \ No newline at end of file