diff --git a/bin/v-add-backup-ftp-host b/bin/v-add-backup-ftp-host deleted file mode 100755 index bb33909f..00000000 --- a/bin/v-add-backup-ftp-host +++ /dev/null @@ -1,106 +0,0 @@ -#!/bin/bash -# info: add backup ftp host -# options: HOST USERNAME PASSWORD [PATH] [PORT] -# -# The function adds ftp host for system backups - - -#----------------------------------------------------------# -# Variable&Function # -#----------------------------------------------------------# - -# Argument defenition -host=$1 -ftp_user=$2 -password=$3 -ftp_path=${4-/backup} -ftp_port=${5-21} - -# Includes -source $VESTA/func/main.sh -source $VESTA/conf/vesta.conf - -# Hiding password -A3='******' -EVENT="$DATE $TIME $SCRIPT $A1 $A2 $A3 $A4 $A5 $A6 $A7 $A8 $A9" - -# Defining ftp command function -ftpc() { - ftp -p -n $host $ftp_port <&1) -ferror=$(echo $fconn |\ - grep -i -e failed -e error -e "can't" -e "not conn" -e "incorrect") -if [ ! -z "$ferror" ]; then - echo "Error: can't login to ftp server" - log_event "$E_CONNECT" "$EVENT" - exit $E_CONNECT -fi - -# Checking write permissions -ftpc "mkdir $ftp_path" > /dev/null 2>&1 -ftmpdir="$ftp_path/vst.bK76A9SUkt" -ftp_result=$(ftpc "mkdir $ftmpdir" "rm $ftmpdir"|grep -v Trying) -if [ ! -z "$ftp_result" ] ; then - echo "$ftp_result" - rm -rf $tmpdir - echo "Error: can't create temp folder on the ftp" - log_event "$E_FTP" "$EVENT" - exit $E_FTP -fi - -# Adding backup host -echo "HOST='$host' -USERNAME='$ftp_user' -PASSWORD='$password' -BPATH='$ftp_path' -PORT='$ftp_port' -TIME='$TIME' -DATE='$DATE'" > $VESTA/conf/ftp.backup.conf -chmod 660 $VESTA/conf/ftp.backup.conf - - -#----------------------------------------------------------# -# Vesta # -#----------------------------------------------------------# - -# Update vesta.conf -if [ -z "$(grep BACKUP_SYSTEM $VESTA/conf/vesta.conf)" ]; then - echo "BACKUP_SYSTEM='ftp'" >> $VESTA/conf/vesta.conf -else - bckp=$(echo "$BACKUP_SYSTEM,ftp" |\ - sed "s/,/\n/g"|\ - sort -r -u |\ - sed "/^$/d"|\ - sed ':a;N;$!ba;s/\n/,/g') - sed -i "s/BACKUP_SYSTEM=.*/BACKUP_SYSTEM='$bckp'/g" $VESTA/conf/vesta.conf -fi - -# Logging -log_event "$OK" "$EVENT" - -exit diff --git a/bin/v-add-backup-sftp-host b/bin/v-add-backup-host similarity index 52% rename from bin/v-add-backup-sftp-host rename to bin/v-add-backup-host index 1921c3bb..cd35c39e 100755 --- a/bin/v-add-backup-sftp-host +++ b/bin/v-add-backup-host @@ -1,34 +1,49 @@ #!/bin/bash -# info: add backup sftp host -# options: HOST USERNAME PASSWORD [PATH] [PORT] +# info: add backup host +# options: TYPE HOST USERNAME PASSWORD [PATH] [PORT] # -# The function adds sftp host for system backups +# The function adds backup host + #----------------------------------------------------------# # Variable&Function # #----------------------------------------------------------# # Argument defenition -sftp_host=$1 -sftp_user=$2 -password=$3 -sftp_path=${4-backup} -sftp_port=${5-22} +type=$1 +host=$2 +user=$3 +password=$4 +path=${5-/backup} +port=$6 # Includes source $VESTA/func/main.sh source $VESTA/conf/vesta.conf # Hiding password -A3='******' +A4='******' EVENT="$DATE $TIME $SCRIPT $A1 $A2 $A3 $A4 $A5 $A6 $A7 $A8 $A9" -# sftp command function +# Defining ftp command function +ftpc() { + ftp -p -n $host $port </dev/null 2>&1 -if [ $? -ne 0 ];then - echo "Error: expect utility not found" - log_event "$E_NOTEXIST" "$EVENT" - exit $E_NOTEXIST -fi +check_args '4' "$#" "TYPE HOST USERNAME PASSWORD [PATH] [PORT]" +validate_format 'host' 'user' is_password_valid +if [ "$type" = 'sftp' ]; then + which expect >/dev/null 2>&1 + if [ $? -ne 0 ];then + echo "Error: expect utility not found" + log_event "$E_NOTEXIST" "$EVENT" + exit $E_NOTEXIST + fi +fi + #----------------------------------------------------------# # Action # #----------------------------------------------------------# -# Checking network connection and write permissions -sftmpdir="$sftp_path/vst.bK76A9SUkt" -sftpc "mkdir $sftp_path" > /dev/null 2>&1 -sftpc "mkdir $sftmpdir" "rmdir $sftmpdir" > /dev/null 2>&1 -rc=$? -if [[ "$rc" != 0 ]]; then - case $rc in - $E_CONNECT) echo "Error: can't login to sftp host";; - $E_FTP) echo "Error: can't create temp folder on the sftp host";; - esac - log_event "$rc" "$EVENT" - exit "$rc" +# Checking network connection +if [ "$type" = 'ftp' ]; then + if [ -z $port ]; then + port=21 + fi + fconn=$(ftpc 2>&1) + ferror=$(echo $fconn |\ + grep -i -e failed -e error -e "can't" -e "not conn" -e "incorrect") + if [ ! -z "$ferror" ]; then + echo "Error: can't login to ftp server" + log_event "$E_CONNECT" "$EVENT" + exit $E_CONNECT + fi + + # Checking write permissions + ftpc "mkdir $path" > /dev/null 2>&1 + ftmpdir="$path/vst.bK76A9SUkt" + ftp_result=$(ftpc "mkdir $ftmpdir" "rm $ftmpdir"|grep -v Trying) + if [ ! -z "$ftp_result" ] ; then + echo "$ftp_result" + rm -rf $tmpdir + echo "Error: can't create $ftmpdir folder on the ftp" + log_event "$E_FTP" "$EVENT" + exit $E_FTP + fi +fi +if [ "$type" = 'sftp' ]; then + if [ -z $port ]; then + port=22 + fi + sftmpdir="$sftp_path/vst.bK76A9SUkt" + sftpc "mkdir $sftmpdir" "rmdir $sftmpdir" > /dev/null 2>&1 + rc=$? + if [[ "$rc" != 0 ]]; then + case $rc in + $E_CONNECT) echo "Error: can't login to sftp host";; + $E_FTP) echo "Error: can't create temp folder on the sftp host";; + esac + log_event "$rc" "$EVENT" + exit "$rc" + fi fi -# Adding sftp backup config file -echo "HOST='$sftp_host' -USERNAME='$sftp_user' -PASSWORD='$password' -BPATH='$sftp_path' -PORT='$sftp_port' -TIME='$TIME' -DATE='$DATE'" > $VESTA/conf/sftp.backup.conf -chmod 660 $VESTA/conf/sftp.backup.conf + +# Adding backup host +if [ $type != 'local' ]; then + echo "HOST='$host' + USERNAME='$user' + PASSWORD='$password' + BPATH='$path' + PORT='$port' + TIME='$TIME' + DATE='$DATE'" > $VESTA/conf/$type.backup.conf + chmod 660 $VESTA/conf/$type.backup.conf +fi #----------------------------------------------------------# @@ -125,9 +176,9 @@ chmod 660 $VESTA/conf/sftp.backup.conf # Update vesta.conf if [ -z "$(grep BACKUP_SYSTEM $VESTA/conf/vesta.conf)" ]; then - echo "BACKUP_SYSTEM='sftp'" >> $VESTA/conf/vesta.conf + echo "BACKUP_SYSTEM='$type'" >> $VESTA/conf/vesta.conf else - bckp=$(echo "$BACKUP_SYSTEM,sftp" |\ + bckp=$(echo "$BACKUP_SYSTEM,$type" |\ sed "s/,/\n/g"|\ sort -r -u |\ sed "/^$/d"|\ diff --git a/bin/v-delete-backup-ftp-host b/bin/v-delete-backup-host similarity index 100% rename from bin/v-delete-backup-ftp-host rename to bin/v-delete-backup-host diff --git a/bin/v-delete-backup-sftp-host b/bin/v-delete-backup-sftp-host deleted file mode 100755 index 56f257cb..00000000 --- a/bin/v-delete-backup-sftp-host +++ /dev/null @@ -1,45 +0,0 @@ -#!/bin/bash -# info: delete backup sftp server -# options: NONE -# -# The function deletes sftp backup host - - -#----------------------------------------------------------# -# Variable&Function # -#----------------------------------------------------------# - -# Includes -source $VESTA/func/main.sh -source $VESTA/conf/vesta.conf - - -#----------------------------------------------------------# -# Verifications # -#----------------------------------------------------------# - - -#----------------------------------------------------------# -# Action # -#----------------------------------------------------------# - -# Delete configuration file -rm -f $VESTA/conf/sftp.backup.conf - - -#----------------------------------------------------------# -# Vesta # -#----------------------------------------------------------# - -# Update vesta.conf -bckp=$(echo "$BACKUP_SYSTEM" |\ - sed "s/,/\n/g"|\ - sed "s/sftp//" |\ - sed "/^$/d"|\ - sed ':a;N;$!ba;s/\n/,/g') -sed -i "s/BACKUP_SYSTEM=.*/BACKUP_SYSTEM='$bckp'/g" $VESTA/conf/vesta.conf - -# Logging -log_event "$OK" "$EVENT" - -exit diff --git a/bin/v-list-backup-ftp-host b/bin/v-list-backup-host similarity index 74% rename from bin/v-list-backup-ftp-host rename to bin/v-list-backup-host index a4869c54..b08c3626 100755 --- a/bin/v-list-backup-ftp-host +++ b/bin/v-list-backup-host @@ -1,8 +1,8 @@ #!/bin/bash # info: list backup host -# options: [FORMAT] +# options: TYPE [FORMAT] # -# The function for obtaining the list of back fto host. +# The function for obtaining the list of backup host parameters. #----------------------------------------------------------# @@ -10,7 +10,8 @@ #----------------------------------------------------------# # Argument defenition -format=${1-shell} +TYPE=$1 +format=${2-shell} # Includes source $VESTA/func/main.sh @@ -19,19 +20,16 @@ source $VESTA/func/main.sh json_list_ftp_host() { i=1 fileds_count=$(echo "$fields" | wc -w) - ip_data=$(cat $VESTA/conf/ftp.backup.conf) + ip_data=$(cat $VESTA/conf/$TYPE.backup.conf) echo '{' + echo -e "\t\"$TYPE\": {" eval $ip_data for field in $fields; do eval value=$field - if [ $i -eq 1 ]; then - echo -e "\t\"$value\": {" + if [ $fileds_count -eq $i ]; then + echo -e "\t\t\"${field//$/}\": \"${value//,/, }\"" else - if [ $fileds_count -eq $i ]; then - echo -e "\t\t\"${field//$/}\": \"${value//,/, }\"" - else - echo -e "\t\t\"${field//$/}\": \"${value//,/, }\"," - fi + echo -e "\t\t\"${field//$/}\": \"${value//,/, }\"," fi (( ++i)) done @@ -43,7 +41,7 @@ json_list_ftp_host() { # Shell function shell_list_ftp_host() { - line=$(cat $VESTA/conf/ftp.backup.conf) + line=$(cat $VESTA/conf/$TYPE.backup.conf) eval $line for field in $fields; do eval key="$field" @@ -59,17 +57,19 @@ shell_list_ftp_host() { # Verifications # #----------------------------------------------------------# +check_args '1' "$#" 'TYPE [FORMAT]' + #----------------------------------------------------------# # Action # #----------------------------------------------------------# -if [ ! -e "$VESTA/conf/ftp.backup.conf" ]; then +if [ ! -e "$VESTA/conf/$TYPE.backup.conf" ]; then exit fi # Defining fileds to select -fields='$HOST $USERNAME $PORT $TIME $DATE' +fields='$HOST $USERNAME $PORT $TYPE $BPATH $TIME $DATE' # Listing database case $format in