Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/sh
- # use lftp to mirror (download) a remote (source) server directory
- # to a local (target) directory, removing the remote directory after
- # transfer is complete. Uses parallel file transfer as well as segmented
- # transfer. Authorization is done using default ssh private key file as
- # determined by "ssh -a -x"
- # Leave PASSword blank to use ssh private key authorization
- PIDFILE=~/.lftp_script.pid
- if [ -e "$PIDFILE" ]
- then
- kill "`cat "$PIDFILE"`"
- fi
- echo $$ > "$PIDFILE"
- USER="*******"
- PASS="K*******"
- HOST="198.*******"
- PORT=22
- REMOTE_DIR1="/home/user/downloads/LFTP/TV_FAST"
- LOCAL_DIR1="/cygdrive/c/users/MiniPC/Desktop/TV_Temp"
- REMOTE_DIR2="/home/user/downloads/LFTP/Movies_FAST"
- LOCAL_DIR2="/cygdrive/c/users/MiniPC/Desktop/Movies_Temp"
- REMOTE_DIR3="/home/user/downloads/LFTP/TV"
- REMOTE_DIR4="/home/user/downloads/LFTP/Movies"
- # If the target (local) directory ends with a slash (except the root),
- # the source (remote) base name is appended to target directory name.
- # In most cases you will NOT want to end with a '/'
- # number of parallel files and segments to transfer, and minimum chunk size
- NFIL=1
- NSEG=10
- MINCHUNK=1M
- LOG="${HOME}/.lftp-seedbox-sync-get.log"
- LOCKF="/tmp/lftp-mirror-get.lock"
- echo "${0} Starting at $(date)"
- trap "rm -f ${LOCKF}" SIGINT SIGTERM
- if [ -e "${LOCKF}" ]; then
- echo "*** ERROR: ${0} is already running...Exiting..."
- exit 1
- else
- touch "${LOCKF}"
- lftp -p ${PORT} -u "${USER},${PASS}" sftp://${HOST} << EOF
- mv "${REMOTE_DIR1}" "${REMOTE_DIR1}_lftp"
- mkdir -p "${REMOTE_DIR1}"
- set ftp:list-options -a
- set pget:min-chunk-size ${MINCHUNK}
- set pget:default-n ${NSEG}
- set mirror:use-pget-n ${NSEG}
- set mirror:parallel-transfer-count ${NFIL}
- set mirror:parallel-directories yes
- set net:limit-total-rate 1750000
- mirror -c --log="${LOG}" "${REMOTE_DIR1}_lftp" "${LOCAL_DIR1}"
- rm -rf "${REMOTE_DIR1}_lftp"
- quit
- EOF
- mv "${REMOTE_DIR2}" "${REMOTE_DIR2}_lftp"
- mkdir -p "${REMOTE_DIR2}"
- set ftp:list-options -a
- set pget:min-chunk-size ${MINCHUNK}
- set pget:default-n ${NSEG}
- set mirror:use-pget-n ${NSEG}
- set mirror:parallel-transfer-count ${NFIL}
- set mirror:parallel-directories yes
- set net:limit-total-rate 1750000
- mirror -c --log="${LOG}" "${REMOTE_DIR2}_lftp" "${LOCAL_DIR2}"
- rm -rf "${REMOTE_DIR2}_lftp"
- quit
- EOF
- mv "${REMOTE_DIR3}" "${REMOTE_DIR3}_lftp"
- mkdir -p "${REMOTE_DIR3}"
- set ftp:list-options -a
- set pget:min-chunk-size ${MINCHUNK}
- set pget:default-n ${NSEG}
- set mirror:use-pget-n ${NSEG}
- set mirror:parallel-transfer-count ${NFIL}
- set mirror:parallel-directories yes
- set net:limit-total-rate 1250000
- mirror -c --log="${LOG}" "${REMOTE_DIR3}_lftp" "${LOCAL_DIR1}"
- rm -rf "${REMOTE_DIR3}_lftp"
- quit
- EOF
- mv "${REMOTE_DIR4}" "${REMOTE_DIR4}_lftp"
- mkdir -p "${REMOTE_DIR4}"
- set ftp:list-options -a
- set pget:min-chunk-size ${MINCHUNK}
- set pget:default-n ${NSEG}
- set mirror:use-pget-n ${NSEG}
- set mirror:parallel-transfer-count ${NFIL}
- set mirror:parallel-directories yes
- set net:limit-total-rate 1250000
- mirror -c --log="${LOG}" "${REMOTE_DIR4}_lftp" "${LOCAL_DIR2}"
- rm -rf "${REMOTE_DIR4}_lftp"
- quit
- EOF
- rm -f "${LOCKF}"
- trap - SIGINT SIGTERM
- echo "${0} Finished at $(date)"
- rm "$PIDFILE"
- exit 0
- fi
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement