forked from littlebizzy/slickstack
-
Notifications
You must be signed in to change notification settings - Fork 0
/
ss-reboot-machine.txt
79 lines (63 loc) · 4.7 KB
/
ss-reboot-machine.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#!/bin/bash
####################################################################################################
#### author: SlickStack ############################################################################
#### link: https://slickstack.io ###################################################################
#### mirror: https://mirrors.slickstack.io/bash/ss-reboot-machine.txt ##############################
#### path: /var/www/ss-reboot-machine ##############################################################
#### destination: n/a (not a boilerplate) ##########################################################
#### purpose: Force reboots the server but is rate-limited so it can be used within scripts ########
#### module version: Ubuntu 20.04 LTS ##############################################################
#### sourced by: ss core cron jobs, ss core bash scripts ###########################################
#### bash aliases: ss reboot #######################################################################
####################################################################################################
## source ss-config ##
source /var/www/ss-config
## source ss-functions ##
source /var/www/ss-functions
## BELOW THIS RELIES ON SS-CONFIG AND SS-FUNCTIONS
####################################################################################################
#### SS-Reboot-Machine: MESSAGE (Begin) ############################################################
####################################################################################################
## MESSAGE ##
echo -e "${PURPLE}Running ss-reboot-machine: Force reboots the server but is rate-limited so it can be used within scripts... ${NOCOLOR}"
sleep "$SLEEP_MESSAGE_BEGIN"
####################################################################################################
#### SS-Reboot-Machine: Force Reboot The Server ####################################################
####################################################################################################
## here we check to see if ss-reboot was run in the past 60 minutes or not before running ##
## this protects you from consecutive (abusive) reboots e.g. if run via ss-worker ##
## FUTURE: customize via ss-config options ##
## reboot only if ss-reboot was not run in past 60 minutes ##
if [[ ! -f "$TIMESTAMP_SS_REBOOT_MACHINE" ]] || [[ -n $(find "$TIMESTAMP_SS_REBOOT_MACHINE" -amin +60) ]]; then
touch "$TIMESTAMP_SS_REBOOT_MACHINE"
/bin/bash -c "/sbin/reboot"
else
echo -e ""
echo -e "${YELLOW}It appears your server has rebooted already within the last 60 minutes, ${NOCOLOR}"
echo -e "${YELLOW}therefore ss-reboot has exited without rebooting at this time. ${NOCOLOR}"
echo -e ""
fi
####################################################################################################
#### SS-Reboot-Machine: Touch Timestamp File (End Script) ##########################################
####################################################################################################
## THIS SNIPPET USES IRREGULAR CODING
## this is a dummy timestamp file that will remember the last time this script was run ##
## it can be useful for developer reference and is sometimes used by SlickStack ##
## script timestamp ##
# touch "$TIMESTAMP_SS_REBOOT_MACHINE" ## DO NOT ENABLE HERE
####################################################################################################
#### SlickStack: External References Used To Improve This Script (Thanks, Interwebz) ###############
####################################################################################################
## Ref: https://askubuntu.com/questions/789058/how-to-make-sbin-shutdown-sbin-reboot-etc-require-sudo-again-in-16-04
## Ref: https://unix.stackexchange.com/questions/46541/how-can-i-use-bashs-if-test-and-find-commands-together
## Ref: https://askubuntu.com/questions/441969/what-is-the-difference-between-reboot-and-shutdown-r
## Ref: https://askubuntu.com/questions/1023939/what-kind-of-link-to-bin-systemctl-is-sbin-reboot
## Ref: https://unix.stackexchange.com/questions/467552/reboot-over-ssh
## Ref: https://stackoverflow.com/questions/27452790/bash-reboot-command-not-found
## Ref: https://superuser.com/questions/571681/rebooting-linux-from-script
## Ref: https://www.tecmint.com/35-practical-examples-of-linux-find-command/
## Ref: https://www.tutorialdba.com/2018/03/linux-ctimemtimeatimecminaminmmin.html
## Ref: https://askubuntu.com/questions/442575/how-to-check-when-the-ubuntu-server-was-rebooted
## Ref: https://www.cyberciti.biz/tips/linux-last-reboot-time-and-date-find-out.html
## Ref: https://serverfault.com/questions/255911/detecting-restart-since-last-run-in-a-shell-script-on-linux
## SS_EOF