Created
July 18, 2013 17:41
-
-
Save rtrouton/6031323 to your computer and use it in GitHub Desktop.
Downloading gzip'd tar file from web server to update NFS automounts
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# This script checks the timestamp of the fileURL and compares it against a locally | |
# cached timestamp. If the archive's timestamp is newer, then it gets downloaded, | |
# extracted into /etc/, and the automount cache gets flushed. | |
fileURL="http://server.name.here/path/to/automounts.tgz" | |
sleep 20 | |
# Custom curl options | |
myCurl () { /usr/bin/curl --silent --show-error "$@"; } | |
# Get modification date of fileURL | |
modDate=$(myCurl --head $fileURL | awk -F': ' '/Last-Modified/{print $2}') | |
# update_automounts function, called only if needed | |
update_automounts () { | |
echo $modDate > /tmp/automounts_timestamp | |
myCurl --output /tmp/automounts.tgz $fileURL | |
# backup the original auto_master | |
if [ ! -f /etc/auto_master~orig ]; then | |
cp /etc/auto_master /etc/auto_master~orig | |
fi | |
# untar into place | |
tar zxf /tmp/automounts.tgz -C /etc | |
# purge automount cache | |
automount -vc && exit 0 | |
} | |
# Compare timestamps and update automounts if needed. | |
if [ -f /tmp/automounts_timestamp ]; then | |
cachedDate=$(cat /tmp/automounts_timestamp) | |
if [ "$cachedDate" == "$modDate" ]; then | |
exit 0 | |
else | |
update_automounts | |
fi | |
else | |
update_automounts | |
fi |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment