add remote updater and improve init scripts

This commit is contained in:
Roger Pàmies Fabra 2023-01-26 23:01:56 +01:00
parent 1e95f868b0
commit cccc81172f
2 changed files with 51 additions and 1 deletions

View File

@ -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_GOTIFY_APP>/$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

10
remote_updater.sh Normal file
View File

@ -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 //"