Revize 1811
Přidáno uživatelem Michal Kliment před více než 11 roky(ů)
freenetis/branches/1.1/application/vendors/dhcp/freenetis-dhcp-sync.sh | ||
---|---|---|
#!/bin/bash
|
||
################################################################################
|
||
# #
|
||
# Author: Michal Kliment #
|
||
# Description: This script generates config file of ISC DHCP server #
|
||
# from FreenetIS #
|
||
# #
|
||
# Version: 0.1.0 #
|
||
# #
|
||
################################################################################
|
||
|
||
CONFIG=/etc/freenetis/freenetis-dhcp.conf
|
||
|
||
# Load variables
|
||
if [ -e $CONFIG ]; then
|
||
. $CONFIG || true
|
||
TMPFILE=`mktemp`
|
||
else
|
||
echo "`date -R` Config file is missing at path $CONFIG. Terminating..."
|
||
exit 0
|
||
fi
|
||
|
||
# check config
|
||
if [[ ! "$DEVICE_ID" =~ ^[0-9]+$ ]] || [ $DEVICE_ID -lt 1 ]; then
|
||
echo "[ERROR] `date -R` Wrong configuration (ID not set properly)"
|
||
exit 1
|
||
fi
|
||
|
||
# download
|
||
rm -f "$TMPFILE"
|
||
echo "[INFO] `date -R` Downloading ISC DHCP SERVER config from (${PATH_FN})"
|
||
status=`wget --no-check-certificate --server-response -q "$FULL_PATH" -O "$TMPFILE" 2>&1 | awk '/^ HTTP/{print $2}'`
|
||
|
||
# make sure that config exist
|
||
touch "$DHCP_CONF"
|
||
|
||
# check download
|
||
if [ "$status" = "200" ]; then
|
||
# config has been change
|
||
if [ `diff "$TMPFILE" "$DHCP_CONF" | wc -l` -gt 0 ]; then
|
||
echo "[INFO] `date -R` Downloaded (code: $status)"
|
||
echo "[INFO] `date -R` Backuping old config to $DHCP_CONF.save"
|
||
mv -f "$DHCP_CONF" "$DHCP_CONF".save
|
||
echo "[INFO] `date -R` Loading new config to $DHCP_CONF.save..."
|
||
mv -f "$TMPFILE" "$DHCP_CONF"
|
||
echo "[INFO] `date -R` Restarting ISC DHCP server"
|
||
service isc-dhcp-server restart 2>&1 >/dev/null
|
||
else
|
||
echo "[ERROR] `date -R` No change -> keeping old configuration"
|
||
fi
|
||
else
|
||
echo "[ERROR] `date -R` Download failed (code: $status)"
|
||
fi
|
freenetis/branches/1.1/application/vendors/dhcp/freenetis-dhcp.conf | ||
---|---|---|
################################################################################
|
||
# #
|
||
# Author: Michal Kliment, Ondrej Fibich #
|
||
# Description: This script generates config file of ISC DHCP server #
|
||
# from FreenetIS. #
|
||
# #
|
||
################################################################################
|
||
|
||
# Base PATH_FN to running FreenetIS instance
|
||
PATH_FN=http://localhost/freenetis
|
||
|
||
# ID of device from FreenetIS
|
||
DEVICE_ID=0
|
||
|
||
# Log file, change to /dev/null to disable logging
|
||
LOG_FILE=/var/log/freenetis-dhcp.log
|
||
|
||
# Filename with ISC DHCP server config
|
||
DHCP_CONF="/etc/dhcp/dhcpd.conf"
|
||
|
||
# Full path [DO NOT CHANGE THIS VARIABLE!!!]
|
||
FULL_PATH=$PATH_FN"/index.php/en/devices/export/"$DEVICE_ID"/debian-etc-dhcp-dhcpd/text"
|
Také k dispozici: Unified diff
Opravy:
- fixes #456 - Vytvoreni skriptu pro aktualizaci DHCP serveru z FreenetISu - verze pro Linux