Advertisement
rageagainstjg

Untitled

Jul 15th, 2015
210
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.31 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. quit
  65. EOF
  66.  
  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. quit
  79. EOF
  80.  
  81. mv "${REMOTE_DIR3}" "${REMOTE_DIR3}_lftp"
  82. mkdir -p "${REMOTE_DIR3}"
  83. set ftp:list-options -a
  84. set pget:min-chunk-size ${MINCHUNK}
  85. set pget:default-n ${NSEG}
  86. set mirror:use-pget-n ${NSEG}
  87. set mirror:parallel-transfer-count ${NFIL}
  88. set mirror:parallel-directories yes
  89. set net:limit-total-rate 1250000
  90. mirror -c --log="${LOG}" "${REMOTE_DIR3}_lftp" "${LOCAL_DIR1}"
  91. rm -rf "${REMOTE_DIR3}_lftp"
  92. quit
  93. EOF
  94.  
  95. mv "${REMOTE_DIR4}" "${REMOTE_DIR4}_lftp"
  96. mkdir -p "${REMOTE_DIR4}"
  97. set ftp:list-options -a
  98. set pget:min-chunk-size ${MINCHUNK}
  99. set pget:default-n ${NSEG}
  100. set mirror:use-pget-n ${NSEG}
  101. set mirror:parallel-transfer-count ${NFIL}
  102. set mirror:parallel-directories yes
  103. set net:limit-total-rate 1250000
  104. mirror -c --log="${LOG}" "${REMOTE_DIR4}_lftp" "${LOCAL_DIR2}"
  105. rm -rf "${REMOTE_DIR4}_lftp"
  106. quit
  107. EOF
  108. rm -f "${LOCKF}"
  109. trap - SIGINT SIGTERM
  110. echo "${0} Finished at $(date)"
  111. rm "$PIDFILE"
  112. exit 0
  113. fi
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement