Merge pull request #6 from stevejenkins/develop

Develop
This commit is contained in:
Steve Jenkins
2016-11-27 07:56:23 -08:00
committed by GitHub
4 changed files with 147 additions and 0 deletions

18
README.md Normal file
View File

@@ -0,0 +1,18 @@
# unifi-linux-utils
A collection of helpful Linux / Unix scripts and utilities for admins of Ubiquiti (UBNT) UniFi products
## uap-reboot.sh
Remotely reboots a Ubiquiti (UBNT) UniFi access point
## unifi_ssl_import.sh
Imports SSL certificates (including Let's Encrypt) for the Ubiquiti (UBNT) UniFi Controller on Linux / Unix Systems
## upgrade_unifi_controller.sh
Automates upgrade of Ubiquiti (UBNT) UniFi Controller software on Linux / Unix Systems
## UniFi Controller Startup Scripts
###/startup-scripts/UniFi.service
Ubiquiti (UBNT) UniFi controller service file for systemd Linux / Unix systems
###/startup-scripts/UniFi
Ubiquiti (UBNT) UniFi controller service file for SysV Linux / Unix systems

74
startup-scripts/UniFi Normal file
View File

@@ -0,0 +1,74 @@
#!/bin/bash
#
# UniFi Start and stop the UBNT UniFi Controller
# chkconfig: 2345 95 20
# description: UniFi Controller
# pidfile: /var/run/UniFi.pid
# Script by Steve Jenkins (SteveJenkins.com)
# Last Updated June 15, 2016
. /etc/rc.d/init.d/functions
SERVICE_NAME="UniFi Controller"
PATH_TO_JAVA=/usr/bin/java
PATH_TO_JAR=/opt/UniFi/lib/ace.jar
MEM_LIMIT=1024M
PID_FILE=/var/run/UniFi.pid
start() {
if [ ! -f $PID_FILE ]; then
echo -n "Starting $SERVICE_NAME: "
$PATH_TO_JAVA -Xmx$MEM_LIMIT -jar $PATH_TO_JAR start &> /dev/null &
echo $! > $PID_FILE
echo_success
echo
else
echo -n "$SERVICE_NAME is already running"
echo_failure
echo
fi
}
stop() {
if [ -f $PID_FILE ]; then
PID=$(cat $PID_FILE);
echo -n "Stopping $SERVICE_NAME: "
$PATH_TO_JAVA -jar $PATH_TO_JAR stop &> /dev/null &
rm $PID_FILE
echo_success
echo
else
echo -n "$SERVICE_NAME is not running"
echo_failure
echo
fi
}
case $1 in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
status)
if [ -f $PID_FILE ]; then
PID=$(cat $PID_FILE);
echo "$SERVICE_NAME running as process $PID"
else
echo "$SERVICE_NAME is not running"
fi
;;
*)
echo "usage: service UniFi {start|stop|restart|status}"
exit 1
;;
esac
exit 0

View File

@@ -0,0 +1,24 @@
# UniFi Controller systemd Service File
# by Steve Jenkins
# Last updated July 15, 2016
# Instructions:
# 1. Install Java, MongoDB, and UniFi Controller
# 2. Save this file as /etc/systemd/system/UniFi.service
# 3. Create 'ubnt' user on your system
# 4. Run 'systemctl enable UniFi.service'
[Unit]
Description=Ubiquiti UniFi Controller
After=syslog.target network.target
[Service]
ExecStart=/usr/bin/java -Xmx1024M -jar /opt/UniFi/lib/ace.jar start
ExecStop=/usr/bin/java -jar /opt/UniFi/lib/ace.jar stop
Type=simple
User=ubnt
WorkingDirectory=/opt/UniFi
SuccessExitStatus=143
[Install]
WantedBy=multi-user.target

31
uap-reboot.sh Normal file
View File

@@ -0,0 +1,31 @@
#!/bin/sh
# A simple script for remotely rebooting a Ubiquiti UniFi access point
# Version 1.0 (Dec 15, 2015)
# by Steve Jenkins (http://www.stevejenkins.com/)
# Requires sshpass (https://sourceforge.net/projects/sshpass/) which
# is probably available via dnf, yum, or apt on your *nix distro.
# USAGE
# Update the user-configurable settings below, then run ./uap-reboot.sh from
# the command line. To reboot on a schedule, create a cronjob such as:
# 45 3 * * * /usr/local/bin/uap-reboot.sh > /dev/null 2>&1 #Reboot UniFi AP
# The above example will reboot the UniFi access point every morning at 3:45 AM.
# USER-CONFIGURABLE SETTINGS
username=ubnt
password=ubnt
known_hosts_file=/dev/null
uap_ip=192.168.1.11
# SHOULDN'T NEED TO CHANGE ANYTHING PAST HERE
echo "Rebooting UniFi access point at $uap_ip..."
if sshpass -p $password ssh -oStrictHostKeyChecking=no -oUserKnownHostsFile=$known_hosts_file $username@$uap_ip reboot; then
echo "Reboot complete!" 1>&2
exit 0
else
echo "Could not reboot UniFi access point. Please check your settings." 1>&2
exit 1
fi