| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 | 
							- #!/usr/bin/env bash
 
- #
 
- # Upload file(s) to FTP server
 
- #
 
- # Copyright (C) 2016 - 2018 Teddysun <[email protected]>
 
- #
 
- # Argument example:
 
- # 1) ./ftp_upload.sh filename
 
- # 2) ./ftp_upload.sh filename1 filename2 filename3 ...
 
- # 3) ./ftp_upload.sh "*.extension"
 
- # 4) ./ftp_upload.sh "*.extension1" "*.extension2"
 
- #
 
- ########## START OF CONFIG ##########
 
- # Local directory (current folder)
 
- LOCALDIR=$( pwd )
 
- # File to log the outcome of backups
 
- LOGFILE="/var/log/ftp_upload.log"
 
- # FTP server
 
- # Enter the Hostname or IP address below
 
- FTP_HOST=""
 
- # FTP username
 
- # Enter the FTP username below
 
- FTP_USER=""
 
- # FTP password
 
- # Enter the username's password below
 
- FTP_PASS=""
 
- # FTP server remote folder
 
- # Enter the FTP remote folder below
 
- # For example: public_html
 
- FTP_DIR=""
 
- ########## END OF CONFIG ##########
 
- log() {
 
-     echo "$(date "+%Y-%m-%d %H:%M:%S")" "$1"
 
-     echo -e "$(date "+%Y-%m-%d %H:%M:%S")" "$1" >> ${LOGFILE}
 
- }
 
- # Check ftp command
 
- check_command() {
 
-     if [ ! "$(command -v "ftp")" ]; then
 
-         log "ftp command is not installed, please install it and try again"
 
-         exit 1
 
-     fi
 
- }
 
- # Tranferring backup file to FTP server
 
- ftp_upload() {
 
-     cd ${LOCALDIR} || exit
 
-     [ -z ${FTP_HOST} ] && log "Error: FTP_HOST can not be empty!" && exit 1
 
-     [ -z ${FTP_USER} ] && log "Error: FTP_USER can not be empty!" && exit 1
 
-     [ -z ${FTP_PASS} ] && log "Error: FTP_PASS can not be empty!" && exit 1
 
-     [ -z ${FTP_DIR} ] && log "Error: FTP_DIR can not be empty!" && exit 1
 
-     echo "$@" | grep "*" > /dev/null 2>&1
 
-     if [ $? -eq 0 ]; then
 
-         ls $@ > /dev/null 2>&1
 
-         [ $? -ne 0 ] && log "Error: [$@] file(s) not exists!" && exit 1
 
-     else
 
-         for f in $@
 
-         do
 
-             [ ! -f ${f} ] && log "Error: [${f}] not exists!" && exit 1
 
-         done
 
-     fi
 
-     local FTP_OUT_FILE=("$@")
 
-     log "Tranferring file(s) list below to FTP server:"
 
-     for file in ${FTP_OUT_FILE[@]}
 
-     do
 
-         log "$file"
 
-     done
 
-     ftp -in ${FTP_HOST} 2>&1 >> ${LOGFILE} <<EOF
 
- user $FTP_USER $FTP_PASS
 
- binary
 
- lcd $LOCALDIR
 
- cd $FTP_DIR
 
- mput ${FTP_OUT_FILE[@]}
 
- quit
 
- EOF
 
-     log "Tranfer to FTP server completed"
 
- }
 
- # Main progress
 
- STARTTIME=$(date +%s)
 
- [ $# -eq 0 ] && log "Error: argument can not be empty!" && exit 1
 
- check_command
 
- ftp_upload "$@"
 
- ENDTIME=$(date +%s)
 
- DURATION=$((ENDTIME - STARTTIME))
 
- log "All done"
 
- log "Transfer completed in ${DURATION} seconds"
 
 
  |