Advertisement
rageagainstjg

Untitled

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