Skip to content

Instantly share code, notes, and snippets.

@acidprime
Created January 9, 2012 00:18
Show Gist options
  • Save acidprime/1580239 to your computer and use it in GitHub Desktop.
Save acidprime/1580239 to your computer and use it in GitHub Desktop.
Simple Backup Script I used for a backup pre 10.5+ upgrade
#!/bin/bash
declare -x nidump="/usr/bin/nidump"
declare -x dirname="/usr/bin/dirname"
declare -x system_profiler="/usr/sbin/system_profiler"
declare -x hdiutil="/usr/bin/hdiutil"
declare -x sharing="/usr/sbin/sharing"
declare -x serveradmin="/usr/sbin/serveradmin"
declare -x RUN_DIRECTORY="/tmp/$$backup$RANDOM"
# Find the Run Directory from the Script Path
mkdir "$RUN_DIRECTORY/Server Admin"
mkdir "$RUN_DIRECTORY/System Profiler"
mkdir "$RUN_DIRECTORY/Share Points"
mkdir "$RUN_DIRECTORY/Configurations"
mkdir "$RUN_DIRECTORY/Web"
mkdir "$RUN_DIRECTORY/etc"
mkdir "$RUN_DIRECTORY/Users"
$system_profiler -xml >"${RUN_DIRECTORY}/System Profiler/$(hostname).spx"
$hdiutil create -srcFolder /Library/WebServer/Documents/ "${RUN_DIRECTORY}/Web/LibraryWebServerDocuments.dmg"
$hdiutil create -srcFolder /Library/WebObjects/ "${RUN_DIRECTORY}/Web/LibraryWebObjects.dmg"
$hdiutil create -srcFolder /Library/Preferences/ "${RUN_DIRECTORY}/Configurations/LibraryPreferences.dmg"
$hdiutil create -srcFolder /private/etc "${RUN_DIRECTORY}/Configurations/etc.dmg"
$nidump -r /config/SharePoints . >"${RUN_DIRECTORY}/Share Points/SharePoints.nidump"
$sharing -l >"${RUN_DIRECTORY}/Share Points/SharePoints.sharing"
$hdiutil create -srcFolder /Users "$RUN_DIRECTORY/Users/Home Folders.dmg"
$nidump -r /users . >"${RUN_DIRECTORY}/Users/accounts.nidump"
$hdiutil create -srcFolder "/private/var/db/shadow/hash" "${RUN_DIRECTORY}/Users/passwords.dmg"
for SERVICE in $(serveradmin list) ; do
declare STATUS="$(serveradmin status $SERVICE 2>/dev/null |
awk '/.*:state/{print $NF;exit}')"
if [ "$STATUS" = '"RUNNING"' ] ; then
echo $SERVICE is running
serveradmin settings $SERVICE >"${RUN_DIRECTORY}/Server Admin/$SERVICE.serveradmin"
fi
done
$hdiutil create -srcFolder "$RUN_DIRECTORY" "/tmp/serverbackup$$.dmg"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment