#!/bin/bash # Shell script to copy all files recursively and upload them to # remote FTP server (copy local all directories/tree to remote ftp server) # # If you want to use this script in cron then make sure you have # file pointed by $AUTHFILE (see below) and add lines to it: # host ftp.mycorp.com # user myftpuser # pass mypassword # # This is a free shell script under GNU GPL version 2.0 or above # Copyright (C) 2005 nixCraft # Feedback/comment/suggestions : http://cyberciti.biz/fb/ # ------------------------------------------------------------------------- # This script is part of nixCraft shell script collection (NSSC) # Visit http://bash.cyberciti.biz/ for more information. # ------------------------------------------------------------------------- FTP="/usr/bin/ncftpput" CMD="" AUTHFILE="/root/.myupload" if [ -f $AUTHFILE ] ; then # use the file for auth CMD="$FTP -m -R -f $AUTHFILE $myf $remotedir $localdir" else echo "*** To terminate at any point hit [ CTRL + C ] ***" read -p "Enter ftpserver name : " myf read -p "Enter ftp username : " myu read -s -p "Enter ftp password : " myp echo "" read -p "Enter ftp remote directory [/] : " remotedir read -p "Enter local directory to upload path [.] : " localdir [ "$remotedir" == "" ] && remotedir="/" || : [ "$localdir" == "" ] && localdir="." || : CMD="$FTP -m -R -u $myu -p $myp $myf $remotedir $localdir" fi $CMD
Featured Articles:
- 20 Linux System Monitoring Tools Every SysAdmin Should Know
- 20 Linux Server Hardening Security Tips
- 10 Greatest Open Source Software Of 2009
- My 10 UNIX Command Line Mistakes
- Top 5 Email Client For Linux, Mac OS X, and Windows Users
- Top 20 OpenSSH Server Best Security Practices
- Top 10 Open Source Web-Based Project Management Software
- Top 5 Linux Video Editor Software
Want to read Linux tips and tricks, but don't have time to check our blog everyday? Subscribe to our email newsletter to make sure you don't miss a single tip/tricks.
- Download Script
- Email this to a friend
- Rss Feed
- Last Updated: 04/9/08
{ 10 comments… read them below or add one }
Thank you!
it was so usefull for my work.
If the SAME file exists in the remote server, the script overwrite it? append? resume?
It will overwrite the file.
I love you!
If using the AUTHFILE option, don’t forget to set the following variables in this script
myf=”my-ftp-server.com”
remotedir=”/my/remote/dir”
localdir=”/my/local/dir”
And yes, you will need ncftp installed, if it is not already
For OS X with mac ports,
sudo port install ncftp
How to skip upload existing files on remote server?
I am taking server name from a file and everything working fine buy my problem is if a server in the list is not connecting it is not going to next available server. How to get the ftp status in the script if ftp is not connecting how to skip to next available server .
Can we add this script to cron and have it auto backup? I am looking to back up entire dir every week, like at 3am, when there is the least amount of traffic, but I don’t want to have to be around for this to happen.
Why not considering rsync over ssh ?
HI please explain it
[ "$remotedir" == "" ] && remotedir=”/” || :
[ "$localdir" == "" ] && localdir=”.” || :