diff --git a/keymgmt.sh b/keymgmt.sh new file mode 100755 index 0000000..2053662 --- /dev/null +++ b/keymgmt.sh @@ -0,0 +1,59 @@ +#!/bin/bash + +# key management funcion + +interactive() +{ + + tty -s + return $? + +} + +keymgmt() +{ + + local username=$(id -un) + local userid=$(id -u) + + #find out where running users $HOME is + while read line; do + line=$(echo $line | sed 's/ //g') + line=$(echo $line | sed 's/:/ /g') + if [ $(echo $line | awk '{print $3}') -eq $userid ]; then + local home=$(echo $line | awk '{print $6}') + fi + done < /etc/passwd + + if [ -z $1 ]; then + sshkeyfile="$home/.ssh/id_rsa" + else + sshkeyfile="$1" + fi + + if [ -r $sshkeyfile ]; then + #ssh key found + : + else + if ( interactive ); then + echo "no ssh key found" + echo -e "do you want to create a ssh key pair? [y/n] \c" + read choice + if [ -z $choice ]; then + echo "aborting mission. no ssh key found." + exit 1 + elif [ $choice == "y" ] || [ $choice == "Y" ]; then + #creating ssh key pair + ssh-keygen + fi + else + echo "aborting mission. no ssh key found." + exit 1 + fi + fi + +} + +keymgmt + +#end of file diff --git a/sshbackup b/sshbackup index 3abdb5d..38e4dc6 100755 --- a/sshbackup +++ b/sshbackup @@ -7,7 +7,7 @@ # ************************************* # # **** config section **** -version="0.3.1" +version="0.4.0" author="david@socialnerds.org" configfile="$HOME/.sshbackup" @@ -23,6 +23,7 @@ versions=999 config=0 sshkey=0 list=0 +bandwidth=0 options=$* @@ -51,6 +52,7 @@ usage() echo " -l, --list list of sources and destinations" echo " -c, --config alternate config file [~/.sshbackup]" echo " -s, --sshkey alternate sshkey [~/.ssh/id_rsa]" + echo " -b, --bandwidth bandwidth limit in kbit per second" echo } @@ -122,6 +124,9 @@ sshbackup() cmdopt="$cmdopt --link-dest=$destpath/1" fi + #bandwidth limit + if [ + #run rsync $localcmd $cmdopt -e "ssh -q -i $sshkeyfile" --rsync-path="$remotecmd" $sourcepath $destpath/0 if [ $? -ne "0" ]; then @@ -170,6 +175,9 @@ for option in $options; do -s|--sshkey) sshkey=1 ;; + -b|--bandwidth) + bandwidth=1 + ;; *) if [ $config -eq 1 ]; then if [ -r "$option" ]; then @@ -187,6 +195,15 @@ for option in $options; do echo "aborting mission. cannot read sshkeyfile. [$option]" exit 1 fi + elif [ $bandwidth -eq 1 ];then + #TODO: better check if its a number (from 1 to gigabit) + if [ -z $option ]; then + limit=$option + bandwidth=0 + else + echo "aborting mission. bandwidth limit not given. [-b $option]" + exit 1 + fi elif [ $list -eq 1 ]; then if [ -r $option ]; then listfile=$option