Initial commit
This commit is contained in:
commit
5b3352345c
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
variables.conf
|
||||||
|
.disabled
|
16
README.md
Normal file
16
README.md
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
# Boot SMS
|
||||||
|
|
||||||
|
This script uses Free Mobile SMS API to send an SMS informing admin of server reboot.
|
||||||
|
|
||||||
|
### Files
|
||||||
|
* `boot-sms.sh` is the main script.
|
||||||
|
* `wait-reaching.sh` is used by main script to make sure API service is reachable (in practice, delay is the time
|
||||||
|
required by network to be up).
|
||||||
|
* `variables.conf.template` contains examples variables definitions, and should be copied locally to `variables.conf`
|
||||||
|
(with any required modifications).
|
||||||
|
* `systemd-templates/` contains a Systemd units template for running the script at boot.
|
||||||
|
#### Installation
|
||||||
|
* `install.sh` script copies the Systemd template to its destination, and enable the service.
|
||||||
|
|
||||||
|
### TODO
|
||||||
|
* RAS
|
16
boot-sms.sh
Executable file
16
boot-sms.sh
Executable file
@ -0,0 +1,16 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
source "$run_directory/variables.conf"
|
||||||
|
|
||||||
|
# Set parameters here
|
||||||
|
host=$(hostname -f)
|
||||||
|
sysboot=$(who -b | sed 's/^[ \t]*//;s/[ \t]*$//')
|
||||||
|
time=$(date "+%Y-%m-%d %H:%M:%S")
|
||||||
|
msg="$host has rebooted. $sysboot If you did not initiate this, a power failure has probably occured. Message sent on $time."
|
||||||
|
msg=$(echo $msg | sed -e "s/ /%20/g") # Replace spaces with %20 as we are in an URL
|
||||||
|
|
||||||
|
# Actual process
|
||||||
|
URL="https://smsapi.free-mobile.fr/sendmsg?user=$user&pass=$pass&msg=$msg"
|
||||||
|
curl $URL
|
||||||
|
|
||||||
|
exit 0
|
28
install.sh
Executable file
28
install.sh
Executable file
@ -0,0 +1,28 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
run_directory=$(dirname "$0")
|
||||||
|
user=$(whoami)
|
||||||
|
|
||||||
|
if [ -f $run_directory/.disabled ]; then
|
||||||
|
echo "Installation is disabled. Exiting..."
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ $user != 'root' ]]; then
|
||||||
|
sudo="sudo"
|
||||||
|
else
|
||||||
|
sudo=""
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Copying WebSSH unit to system directory..."
|
||||||
|
$sudo cp systemd-templates/boot-sms.service /etc/systemd/system/
|
||||||
|
$sudo sed -i -e "s:PH_DIRECTORY:$(pwd):g" /etc/systemd/system/boot-sms.service
|
||||||
|
|
||||||
|
echo "Reloading Systemd..."
|
||||||
|
$sudo systemctl daemon-reload
|
||||||
|
|
||||||
|
echo "Enabling boot-sms.service..."
|
||||||
|
$sudo systemctl enable boot-sms.service
|
||||||
|
|
||||||
|
echo "Finished install. Exiting..."
|
||||||
|
exit 0
|
11
systemd-templates/boot-sms.service
Normal file
11
systemd-templates/boot-sms.service
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=Send an SMS at system boot
|
||||||
|
After=network.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=oneshot
|
||||||
|
ExecStartPre=/usr/bin/bash PH_DIRECTORY/wait-reaching.sh smsapi.free-mobile.fr
|
||||||
|
ExecStart=PH_DIRECTORY/boot-sms.sh
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
6
variables.conf.template
Normal file
6
variables.conf.template
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# Copy this file as variables.conf, with the correct values
|
||||||
|
|
||||||
|
user=''
|
||||||
|
pass=''
|
5
wait-reaching.sh
Executable file
5
wait-reaching.sh
Executable file
@ -0,0 +1,5 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
until ping -c 1 $1 > /dev/null 2>&1; do
|
||||||
|
sleep 1;
|
||||||
|
done
|
Loading…
Reference in New Issue
Block a user