Created
July 19, 2018 11:50
-
-
Save thieryl/cfaeca4a05663eef22159cfeee836cf8 to your computer and use it in GitHub Desktop.
[rsync] rsync wrapper scripts #linux
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/python | |
import sys, os, subprocess | |
## | |
##RSYNC-BACKUP V1 | |
#the script can be executed and by defualt the variables specified in the script will used, otherwise arguments may be passed to the script at runtime. This script can be used to sync remote files to a local directory or local files to a remote direcory specified at runtime. | |
## | |
## | |
#argument examples: | |
#":~$ rsync-backup.py -raz user@host:/some/dir/ /some/dir" | |
#":~$ rsync-backup.py user@host:/some/dir /local/dir | |
#":~$ rync-backup.py /some/local/dir/ user@host:/some/dir/" | |
## | |
call = os.system | |
arg = sys.argv | |
#when making external calls os.system executes commands without variable designation | |
#timestamp = call("echo $(date +%T_%F)") | |
#change the values of "ID" and opts to reflect your environment | |
ID = ("user", "some/local/direc/", "user@server:/some/remote/direc/") | |
opts = ("-ravui", "-e ssh", "-progress") | |
#sshopts =("") | |
print opts[0] | |
if len(arg) == 1: | |
#print "\nwill execute defualt command: \n" | |
rsync =('rsync ' + ' '+opts[0]+' '+opts[2]+' '+ ID[1] + ' ' + ID[2]) | |
#print(rsync) | |
call(rsync | |
elif len(arg)<3: | |
print "script requires at least three arguments" | |
else: | |
if '-' in arg[1]: | |
#print "using rsync flags" | |
if '@' in arg[2]: | |
#print "syncing from remote dir to local with flags" | |
rsync = ('rsync'+' '+arg[1]+' '+arg[2]+' '+arg[3]) | |
#print(rsync) | |
call(rsync) | |
else: | |
#print "syncing from local dir to remote with flags" | |
rsync = ('rsync'+' '+arg[1]+' '+arg[2]+' '+arg[3]) | |
#print(rsync) | |
call(rsync) | |
elif '@' in arg[2]: | |
#print "syncing from remote dir to local without flags" | |
rsync = ('rsync'+' '+arg[1]+' '+arg[2]) | |
#print(rsync) | |
call(rsync) | |
else: | |
#print "syncing from local dir to remote with flags" | |
rsync = ('rsync'+' '+arg[1]+' '+arg[2]) | |
#print(rsync) | |
call(rsync) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
#with /bin/bash "\n" is ignored for some reason. | |
#for debugging uncomment "set -x" | |
#set -x | |
#RSYNC-BACKUP V1 | |
#the script can be executed and by defualt the variables specified in the script will used, otherwise arguments may be passed to the script at runtime. This script can be used to sync remote files to a local directory or local files to a remote direcory specified at runtime. | |
## | |
#argument examples: | |
#":~$ rsync-backup.sh-raz user@host:/some/dir/ /some/dir" | |
#":~$ rsync-backup.sh user@host:/some/dir /local/dir | |
#":~$ rync-backup.sh /some/local/dir/ user@host:/some/dir/" | |
#States the PID of script | |
tput bold && tput setaf 2 && echo "\n $0 proc ID: $$ \n" && tput sgr0 | |
#GIVE TEXT COLOR: | |
#2 Green | |
#3 Yellow | |
#4 Blue | |
#5 Purple | |
#6 Cyan | |
#7 White | |
COL= | |
TXTCOL=$(tput setf 7) # Yellow | |
RESETCOL=$(tput sgr0) # Text reset | |
TXTBOLD=$(tput bold) | |
#not used currently. Could be used in the variables to date backups. | |
TIMESTAMPS=$(date +%T_%F) #displays with seconds 01:31:39_2011-12-22 | |
TIMESTAMP=$(date +%R_%F) #displays 24 hour mode 01:33_2011-12-22 | |
#Modify as needed# | |
USR=user | |
HOST="user@server" | |
HDIR="/some/remote/dir/" | |
SOURCEDIR="/some/dir" | |
SSHOPTS="ssh" | |
OPTS="\ | |
-\ | |
r\ | |
a\ | |
v\ | |
z\ | |
u\ | |
i \ | |
-e $SSHOPTS \ | |
--progress \ | |
" | |
if [ -z $1 ];then | |
echo "\n running with vars in '$0' \n" | |
echo "rsync $OPTS $SOURCEDIR $HOST:$HDIR" | |
rsync $OPTS $SOURCEDIR $HOST:$HDIR | |
else | |
#tests if rsync flags are used as first arg | |
if [ ! -z $(echo $1 | grep -) ];then | |
$1 | |
echo " \n specified flags" | |
#testing whether string is empty | |
if [ -z $2 ];then | |
echo " \n must specify second input" | |
#testing if host is specifed as second arg. If so, then files are copied from remote destination to local dir | |
elif [ ! -z $(echo $2 | grep @) ];then | |
echo "host specified as second arg" | |
#checks if string is empty | |
if [ -z $3 ];then | |
echo "no destination dir!" | |
else | |
#echo "args:rsync $1 $2 $3" | |
rsync $@ | |
fi | |
elif [ ! -z $(echo $2 | grep /) ];then | |
echo "dir specified as second arg" | |
if [ -z $3 ];then | |
echo "no host specified!" | |
else | |
echo "args:rsync $@" | |
rsync $@ | |
fi | |
fi | |
#rsync | |
elif [ ! -z "$(echo $1 | grep @)" ];then | |
echo "host specified as first input" | |
echo "copy files to remote host without flags" | |
if [ -z $2 ];then | |
echo "\n no destination dir!" | |
else | |
echo "args:rsync $1 $2" | |
rsync $@ | |
fi | |
else | |
echo "dir specified as first input" | |
echo "copy files from local dir to remote host" | |
if [ -z "$2" ];then | |
echo "\n no host specified!" | |
else | |
echo "args:rsync $1 $2" | |
rsync $@ | |
fi | |
fi | |
fi |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment