DOS Batch - FTP Scripts
File Transfer with FTP, One-File Solutions.
Classic FTP | Executing a FTP script. |
FTP - Simple Single Batch | FTP script and batch in a single file. |
FTP - Automatic Login | Automatically login to your FTP session with a single click. |
FTP Scripts Sharing Login Info | Manage the FTP login separately from your FTP scripts. |
FTP - Resolving Environment Variables | Creating FTP script on the fly at runtime and using variables within the FTP script. |
FTP - Download Only New Files | Ftp script to download only files that don`t exist in local folder, i.e. to avoid overwrite |
FTP - Upload Only New Files | Ftp script to upload only files that don`t exist in remote folder, i.e. incremental upload. |
2008-01-01
Classic FTP - Executing a FTP script
Description: | The FTP command support the "-s:ftpscript.txt" option. The FTP commands listed in ftpscript.txt will automatically run after FTP starts. The FTP command can be started from a batch file. Example:
| ||
Script: |
| ||
Script Output: |
|
2008-01-01
FTP - Simple Single Batch - FTP script and batch in a single file
Description: | Embed FTP script into a batch script. Add this line at the beginning of the FTP script: @ftp -i -s:"%~f0"&GOTO:EOFThe "FTP -s:ftpscript.txt" option executes a FTP script wheres "%~f0" resolved to the name of the running batch file. "GOTO:EOF" ends the batch script and makes sure the FTP script doesn`t run as part of the batch.
| ||
Script: |
| ||
Script Output: |
|
2009-12-06
FTP - Automatic Login - Automatically login to your FTP session with a single click
Description: | If you frequently find yourself calling FTP from the command line, each time having to login and change directory and change FTP modes, until you finally get where you want be in order to do some real work then you may wish to get there with a singe click. This little batch can connect to your FTP server and logs you in before it gives you the prompt. You can easily add more FTP commands to it, like changing directories or switching to binary mode or whatever you like to be done before taking over control on the FTP prompt. The FTP connection information is embedded within the batch itself. The batch connects to an FTP server by executing itself in FTP context using the FTP -s option. Once executing in FTP context it executes all FTP commands listed in the file. By omitting the final FTP "bye" command it will stop at the FTP prompt and wait for user input. Optionally a FTP script can be provided as input stream, that way multiple FTP scripts can share the same login information. Example: FtpLogin.bat <script1.ftp | ||
Script: | Download: FtpLogin.bat
| ||
Script Output: |
|
2009-12-06
FTP Scripts Sharing Login Info - Manage the FTP login separately from your FTP scripts
Description: | If you have multiple FTP scripts that all use the same login information to your FTP site then you may wish to manage the login information separately from your FTP scripts in a single place. That way if the username, password or hostname for the FTP connection changes you only need to edit a single place instead of having to edit all FTP scripts one by one. This automatic login script (also described in detail earlier) can be used to execute different FTP scripts that share the same login information stored within the batch file. Example: FtpLogin.bat script1.ftp Note: The FTP scripts passed into the batch must have the login sequence removed. Note: The FTP script executes even if the connection sequence fails potentially causing `Not connected` and other errors. This is no different from regularly executing FTP with -s option. | ||
Script: | Download: FtpLoginSharing.bat
|
2008-10-17
FTP - Resolving Environment Variables - Creating FTP script on the fly at runtime and using variables within the FTP script
Description: | This batch executed the FTP script embedded within the batch. All variables in the FTP script will be resolved. The FOR loop extracts the FTP script into a temporary file. It the ECHO command is being CALLed for each line in order to resolve the variables. Variables can be used within the FTP script the same way as in a batch script, including any string manipulation and command line arguments like %1 %2 %~n0 %* and so on. All batch lines start with semicolon so that they will be ignored by the FOR loop. Semicolon is the default end-of-line (EOL) character used by the FOR command. | ||
Script: |
|
2010-02-05
FTP - Download Only New Files - Ftp script to download only files that don`t exist in local folder, i.e. to avoid overwrite
Description: | This batch connects twice to the FTP server. First time it retrieves a list of files on the FTP server. This list is being trimmed to contain only files that don`t already exist locally. The files in the trimmed list are then downloaded during a second connection. Note: Since all files are passed into the FTP`s MGET command there might be a limit to the number of files that can be processed at once. | ||
Script: | Download: BatchFtpDownloadOnlyNewFiles.bat
|
2010-02-05
FTP - Upload Only New Files - Ftp script to upload only files that don`t exist in remote folder, i.e. incremental upload
Description: | This batch connects twice to the FTP server. First time it retrieves a list of files on the FTP server. Local files that are are not in this list will then be uploaded during a second connection. Note: Since all files are passed into the FTP`s MPUT command there might be a limit to the number of files that can be processed at once. | ||
Script: | Download: BatchFtpUploadOnlyNewFiles.bat
|
[CentOS] ftp로 백업서버로 백업하기 쉘스크립트
현재 서버는 백업서버로의 접근이 ftp만 가능하다.
telnet이 된다면 백업서버에서 쉘을 작성하면 더 용이할 듯하네 ~
사정이 이러하니 실서버에서 백업서버로 ftp로 백업 파일을 전송한다.
파일, 디비 백업은 다음 포스트에 남기도록 하겠다. (검색하면 정말 많이 나온다)
아래와 같이 백업쉘스크립트를 작성한다. 해당 서버에 맞게 작성하면 될듯하다.
#!/bin/bash # FTP 현 서버에서 데이터 FTP 전송 TODAY=`date +%Y%m%d` # 오늘날짜 저장 DELETE_DATE=`date -d "-5 days" +%Y%m%d` # 오늘날짜에서 -n일 저장 DELETE_DATE_SQL=`date -d "-5 days" +%Y%m%d` # 오늘날짜에서 -n일 저장 DELETE_DATE_LOG=`date -d "-5 days" +%Y%m%d` # 오늘날짜에서 -n일 저장 YOIL=`date +%a` # 요일을 저장 #ftp set USERNAME=*** PASSWORD=*** HOST=**** B_DIR=/home/_dev/backup TGZ_FILE="db.tgz" TGZ_DIR=${B_DIR}/$(date +%Y%m%d)_*.sql # 매일백업하는 파일중 오래된 파일 삭제처리 rm -f ${B_DIR}/${DELETE_DATE}_${TGZ_FILE} # sql 삭제도 여기서 rm -f ${B_DIR}/${DELETE_DATE_SQL}_*.sql # 로그파일 삭제 rm -rf /home/_dev/log/${DELETE_DATE_LOG}_ftp_bak_log # 압축 tar cfz ${B_DIR}/${TODAY}_${TGZ_FILE} ${TGZ_DIR} #chmod 777 ${B_DIR}/${TODAY}_${TGZ_FILE} # 파일 echo ${B_DIR}/${TODAY}_${TGZ_FILE} { echo user $USERNAME $PASSWORD echo cd /dbbackup echo bin # as, bi 전송모드 #echo hash echo prompt echo lcd ${B_DIR} #echo put ${TODAY}_${TGZ_FILE} #하나씩 echo mput ${TODAY}_${TGZ_FILE} #다건 echo bye } | ftp -n -v $HOST > /home/_dev/log/${TODAY}_ftp_bak_log
요런식으로 작성해서 파일이름은 ftp_backup.sh 하면 되겠다.
요넘을 매일 매일 돌려야 백업이 정상적으로 되겠지요.
cron에 등록한다.
# crontab -e # mysql backup ftp send 40 01 * * * /home/_dev/cron/ftp_backup.sh >/dev/null 2>&1
매일 새벽 01:40분에 압축하여 백업서버로 전송하면 끝 ~