ionrivera |
10-07-2010 02:40 AM |
Copy files and folders from windows machine to your linux box using rsync and ssh
When copying files remotely even on windows, I use rsync and ssh to accomplish the task...
## PREREQUISITE: Install open-ssh on your windows server ##
1. On your Windows server and Linux box, add ssh keys to automate login without prompting for a password (there are lots of tutorial out there... just google)
2. On your Linux box, make a script (/root/sync.sh)
my script goes like this (you can copy & paste):
Code:
#!/bin/sh
#
RSYNC=$(which rsync)
SSH=$(which ssh)
RUSER=root # Supply your windows server user here
WINSERVER=192.168.0.10 # Change it with your windows server IP or Hostname
SRC=/shares/PUBLIC/ # Your windows shared folder via openssh-windows
DEST=/shares/BACKUP/ # Your linux box destination folder
PID=/var/run/sync.pid
start() {
if [ ! -e "$PID" ];then
touch $PID
echo "Synchronizing files"
$RSYNC -avz -e "$SSH" --delete $RUSER@$WINSERVER:$SRC $DEST
## Note: If you want to have an identical copy of files on both your windows shared folder and linux backup (acts as a mirror), you would need a "--delete" flag in your rsync routine. ##
rm -f $PID
fi
}
stop() {
if [ -e "$PID" ];then
killall rsync
echo "Stopping filesynching"
rm -f $PID
fi
}
restart() {
stop
start
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
*)
echo $"Usage: $0 {start|stop|restart}"
exit 1
esac
exit $?
3. Dont forget to make your script executable and test it.
Code:
chmod +x sync.sh
./sync.sh start
4. If you want to run the script e.g. daily that starts copying/syncing every 5:30PM and stops copying/syncing every 7:30AM, su as root on your Linux Box and:
and insert the ff:
Code:
# m h dom mon dow command
30 17 * * 1-5 /root/sync.sh start
30 7 * * 1-5 /root/sync.sh stop
Thats it! Hope that helps...
|