Advertisement
rageagainstjg

Untitled

Jul 14th, 2015
605
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.47 KB | None | 0 0
  1. #!/bin/sh
  2.  
  3. # use lftp to mirror (download) a remote (source) server directory
  4. # to a local (target) directory, removing the remote directory after
  5. # transfer is complete. Uses parallel file transfer as well as segmented
  6. # transfer. Authorization is done using default ssh private key file as
  7. # determined by "ssh -a -x"
  8.  
  9. # Leave PASSword blank to use ssh private key authorization
  10. PIDFILE=~/.lftp_script.pid
  11.  
  12. if [ -e "$PIDFILE" ]
  13. then
  14. kill "`cat "$PIDFILE"`"
  15. fi
  16.  
  17. echo $$ > "$PIDFILE"
  18.  
  19.  
  20.  
  21.  
  22. USER="*******"
  23. PASS="K*******"
  24. HOST="198.*******"
  25. PORT=22
  26. REMOTE_DIR1="/home/user/downloads/LFTP/TV_FAST"
  27. LOCAL_DIR1="/cygdrive/c/users/MiniPC/Desktop/TV_Temp"
  28. REMOTE_DIR2="/home/user/downloads/LFTP/Movies_FAST"
  29. LOCAL_DIR2="/cygdrive/c/users/MiniPC/Desktop/Movies_Temp"
  30. REMOTE_DIR3="/home/user/downloads/LFTP/TV"
  31. REMOTE_DIR4="/home/user/downloads/LFTP/Movies"
  32. # If the target (local) directory ends with a slash (except the root),
  33. # the source (remote) base name is appended to target directory name.
  34. # In most cases you will NOT want to end with a '/'
  35.  
  36. # number of parallel files and segments to transfer, and minimum chunk size
  37. NFIL=1
  38. NSEG=10
  39. MINCHUNK=1M
  40.  
  41. LOG="${HOME}/.lftp-seedbox-sync-get.log"
  42. LOCKF="/tmp/lftp-mirror-get.lock"
  43.  
  44. echo "${0} Starting at $(date)"
  45.  
  46. trap "rm -f ${LOCKF}" SIGINT SIGTERM
  47. if [ -e "${LOCKF}" ]; then
  48. echo "*** ERROR: ${0} is already running...Exiting..."
  49. exit 1
  50. else
  51. touch "${LOCKF}"
  52. lftp -p ${PORT} -u "${USER},${PASS}" sftp://${HOST} << EOF
  53. mv "${REMOTE_DIR1}" "${REMOTE_DIR1}_lftp"
  54. mkdir -p "${REMOTE_DIR1}"
  55. set ftp:list-options -a
  56. set pget:min-chunk-size ${MINCHUNK}
  57. set pget:default-n ${NSEG}
  58. set mirror:use-pget-n ${NSEG}
  59. set mirror:parallel-transfer-count ${NFIL}
  60. set mirror:parallel-directories yes
  61. set net:limit-total-rate 1750000
  62. mirror -c --log="${LOG}" "${REMOTE_DIR1}_lftp" "${LOCAL_DIR1}"
  63. rm -rf "${REMOTE_DIR1}_lftp"
  64.  
  65.  
  66. lftp -p ${PORT} -u "${USER},${PASS}" sftp://${HOST} << EOF
  67. mv "${REMOTE_DIR2}" "${REMOTE_DIR2}_lftp"
  68. mkdir -p "${REMOTE_DIR2}"
  69. set ftp:list-options -a
  70. set pget:min-chunk-size ${MINCHUNK}
  71. set pget:default-n ${NSEG}
  72. set mirror:use-pget-n ${NSEG}
  73. set mirror:parallel-transfer-count ${NFIL}
  74. set mirror:parallel-directories yes
  75. set net:limit-total-rate 1750000
  76. mirror -c --log="${LOG}" "${REMOTE_DIR2}_lftp" "${LOCAL_DIR2}"
  77. rm -rf "${REMOTE_DIR2}_lftp"
  78.  
  79. lftp -p ${PORT} -u "${USER},${PASS}" sftp://${HOST} << EOF
  80. mv "${REMOTE_DIR3}" "${REMOTE_DIR3}_lftp"
  81. mkdir -p "${REMOTE_DIR3}"
  82. set ftp:list-options -a
  83. set pget:min-chunk-size ${MINCHUNK}
  84. set pget:default-n ${NSEG}
  85. set mirror:use-pget-n ${NSEG}
  86. set mirror:parallel-transfer-count ${NFIL}
  87. set mirror:parallel-directories yes
  88. set net:limit-total-rate 1250000
  89. mirror -c --log="${LOG}" "${REMOTE_DIR3}_lftp" "${LOCAL_DIR1}"
  90. rm -rf "${REMOTE_DIR3}_lftp"
  91.  
  92. lftp -p ${PORT} -u "${USER},${PASS}" sftp://${HOST} << EOF
  93. mv "${REMOTE_DIR4}" "${REMOTE_DIR4}_lftp"
  94. mkdir -p "${REMOTE_DIR4}"
  95. set ftp:list-options -a
  96. set pget:min-chunk-size ${MINCHUNK}
  97. set pget:default-n ${NSEG}
  98. set mirror:use-pget-n ${NSEG}
  99. set mirror:parallel-transfer-count ${NFIL}
  100. set mirror:parallel-directories yes
  101. set net:limit-total-rate 1250000
  102. mirror -c --log="${LOG}" "${REMOTE_DIR4}_lftp" "${LOCAL_DIR2}"
  103. rm -rf "${REMOTE_DIR4}_lftp"
  104. quit
  105. EOF
  106. rm -f "${LOCKF}"
  107. trap - SIGINT SIGTERM
  108. echo "${0} Finished at $(date)"
  109. rm "$PIDFILE"
  110. exit 0
  111. fi
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement