diff --git a/init_scripts.sh b/init_scripts.sh index 44eaefe..599246e 100644 --- a/init_scripts.sh +++ b/init_scripts.sh @@ -1,5 +1,37 @@ #!/bin/bash +# Functions +show_cron_help () { + echo "--------------------------------------------" + echo "* * * * * command to be executed" + echo "- - - - -" + echo "| | | | |" + echo "| | | | ----- Day of week (0 - 7) (Sunday=0 or 7)" + echo "| | | ------- Month (1 - 12)" + echo "| | --------- Day of month (1 - 31)" + echo "| ----------- Hour (0 - 23)" + echo "------------- Minute (0 - 59)" + echo "Examples:" + echo "(predefined) @annually | @yearly | @monthly | @weekly | @daily | @hourly | @reboot" + echo "(every) @every 5s | @every 20h30m" + echo "(custom) 10 20 * * * | 0 3 * * 1-5" + echo -e "--------------------------------------------\n" +} + +get_cron () { + cron=false + while [ "$cron" != "true" ] + do + read -p 'Escriu el periode del cron: ' CRON + case $CRON in + ("") echo "El cron no pot ser buit";; + (*) cron=true #echo "just numeric";; + esac + done + echo "$CRON" +} +# End functions + readonly SCRIPTS_FOLDER="e7scripts" readonly GOTIFY_SCRIPT_NAME="gotifypush.sh" readonly GOTIFY_SCRIPT_URL="https://git.studi7.com/roger/bashscripts/raw/branch/master/gotifypush.sh" @@ -12,6 +44,11 @@ if [[ $EUID -ne 0 ]]; then exit 1 fi +#set -f +#func_result="$(get_cron)" +#echo $func_result +#set +f + echo "/////////////////////////////////////" echo "Benvingut a l'instalador d'Scripts" echo -e "/////////////////////////////////////\n" @@ -56,11 +93,14 @@ elif [ "$SCRIPT_NUM" = "2" ];then sed -i "s//$TOKEN/" "$SCRIPTS_FOLDER/$UPDATES_SCRIPT_NAME" sed -i "s/Hostname/$(hostname)/" "$SCRIPTS_FOLDER/$UPDATES_SCRIPT_NAME" chmod +x "$SCRIPTS_FOLDER/$UPDATES_SCRIPT_NAME" + echo -e "\nAFEGEIX EL CRON\n" + show_cron_help + cron="$(get_cron)" #https://stackoverflow.com/questions/878600/how-to-create-a-cron-job-using-bash-automatically-without-the-interactive-editor #remove previous crontab (crontab -l | grep -v -F "$UPDATES_SCRIPT_NAME") | crontab - #add crontab - (crontab -l ; echo "05 10 * * * cd $(pwd)/$SCRIPTS_FOLDER/ && ./$UPDATES_SCRIPT_NAME 2>&1") | crontab - + (crontab -l ; echo "$cron cd $(pwd)/$SCRIPTS_FOLDER/ && ./$UPDATES_SCRIPT_NAME 2>&1") | crontab - echo -e "Script instal·lat correctament\n" #TODO Function cron get period diff --git a/remote_updater.sh b/remote_updater.sh new file mode 100644 index 0000000..fa438b5 --- /dev/null +++ b/remote_updater.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +#verify run as root or sudo +if [[ $EUID -ne 0 ]]; then + echo "This script must be run as root" + exit 1 +fi + +cat .ssh/config | grep -E "^Host [^\*\*]" | sed "s/Host //" +