diff --git a/bin/setup_backup.sh b/bin/setup_backup.sh index ee14815..fc7356e 100644 --- a/bin/setup_backup.sh +++ b/bin/setup_backup.sh @@ -1,16 +1,21 @@ #!/bin/bash -. bin/setup_ssh_keys.sh +if [[ -n "$RECEIVING_IP" && -n "$RECEIVING_USER" && -n "$RECEIVING_PORT" ]]; then + if ssh -p $RECEIVING_PORT -q -o BatchMode=yes -o ConnectTimeout=5 $RECEIVING_USER@$RECEIVING_IP exit; then + install_pkg cron -install_pkg cron + cp ./assets/backup.sh ~/backup.sh + chmod +x ~/backup.sh -cp ./assets/backup.sh ~/backup.sh -chmod +x ~/backup.sh + sed -i "s/^receiving_ip=.*/receiving_ip=$RECEIVING_IP/" ~/backup.sh + sed -i "s/^receiving_user=.*/receiving_user=$RECEIVING_USER/" ~/backup.sh + sed -i "s/^receiving_port=.*/receiving_port=$RECEIVING_PORT/" ~/backup.sh -sed -i "s/^receiving_ip=.*/receiving_ip=$RECEIVING_IP/" ~/backup.sh -sed -i "s/^receiving_user=.*/receiving_user=$RECEIVING_USER/" ~/backup.sh -sed -i "s/^receiving_port=.*/receiving_port=$RECEIVING_PORT/" ~/backup.sh + cronjob="0 2 * * * ~/backup.sh" -cronjob="0 2 * * * ~/backup.sh" - -( crontab -l 2>/dev/null; echo "$cronjob" ) | crontab - \ No newline at end of file + ( crontab -l 2>/dev/null; echo "$cronjob" ) | crontab - + fi +else + . bin/setup_ssh_keys.sh + . bin/setup_backup.sh +fi \ No newline at end of file diff --git a/bin/setup_ssh_keys.sh b/bin/setup_ssh_keys.sh index 21e28e1..e62d387 100644 --- a/bin/setup_ssh_keys.sh +++ b/bin/setup_ssh_keys.sh @@ -7,6 +7,15 @@ read RECEIVING_USER echo -e "${PURPLE}${BOLD}Enter the receiving server port : ${RESET}" read RECEIVING_PORT -# si les ssh keys sont pas déjà set -ssh-keygen -ssh-copy-id -p ${RECEIVING_PORT} ${RECEIVING_USER}@${RECEIVING_IP} \ No newline at end of file +if [ ! -f ~/.ssh/id_rsa ]; then + ssh-keygen -t rsa -b 2048 -N "" -f ~/.ssh/id_rsa +fi +ssh-copy-id -p ${RECEIVING_PORT} ${RECEIVING_USER}@${RECEIVING_IP} + +hostname=$(hostname) + +ssh -p $RECEIVING_PORT $RECEIVING_USER@$RECEIVING_IP << EOF + awk '/${hostname}$/ {last=\$0; count++} {lines[NR]=\$0} END {for (i=1; i<=NR; i++) if (lines[i] !~ /$(hostname)$/ || count-- == 1) print lines[i]}' /home/${RECEIVING_USER}/.ssh/authorized_keys + > /home/${RECEIVING_USER}/.ssh/authorized_keys.tmp + && mv /home/${RECEIVING_USER}/.ssh/authorized_keys.tmp /home/${RECEIVING_USER}/.ssh/authorized_keys +EOF \ No newline at end of file