File System
Disk Utilities
#!/bin/bash
#Author : Arun Patwardhan
#Date : 25th March 2020
#Contact : arun@amaranthine.co.in
#Website : https://www.amaranthine.in
#Scope : This script configures the Content Caching settings for a Mac.
#NOTE : This script must be run as sudo.
#DISCLAIMER : The author of this script provides it on an as is basis. The author is not repsonsible for any damages, loss of data or any other issue that may occur with
# the use of this script. The user of this script must take due care to validate the script before use.
#WARNING : Use caution while running scripts as root.
####################################################################################################
####################################################################################################
# VALUE FORMAT FOR THE ARGUMENTS
# USERNAME : All lower case, one word. This is the administrator user account username.
# PASSWORD : Should be a single word. This is the administrator user account password.
#
# SAMPLE USAGE
# sudo ./collectDiskInformation.sh
####################################################################################################
####################################################################################################
#Variables
USERNAME=""
PASSWORD=""
FOLDER="/Users/Shared"
LOGFILE="$FOLDER/collectDiskInformation.log"
DISKREPORTS="$FOLDER/DiskReports"
DISKLIST="$DISKREPORTS/in.amaranthine.diskList.plist"
DISKINFO="$DISKREPORTS/in.amaranthine.diskReport.plist"
DISKFS="$DISKREPORTS/in.amaranthine.availableFileSystems.plist"
APFSLIST="$DISKREPORTS/in.amaranthine.apfsList.plist"
APFSCRYPTOUSERS="$DISKREPORTS/in.amaranthine.apfsCryptoUsers.plist"
#1. Check to see if the script is being run as root
if [[ $EUID -ne 0 ]]; then
echo "The script must be run as root."
exit 1
fi
#2. Check to see if the log file exists
if [[ -f $LOGFILE ]]
then
echo "$(date "+DATE: %Y-%m-%d%TIME: %H:%M:%S") File exists" >> $LOGFILE
else
cd /Users/Shared/
touch collectDiskInformation.log
echo "$(date "+DATE: %Y-%m-%d%TIME: %H:%M:%S") Created Folder" >> $LOGFILE
fi
#3. Check to see if the Disk reports folder exists, else create it
if [[ -d $DISKREPORTS ]]
then
echo "$(date "+DATE: %Y-%m-%d%TIME: %H:%M:%S") Reports folder exists." >> $LOGFILE
else
cd $FOLDER
mkdir DiskReports
echo "$(date "+DATE: %Y-%m-%d%TIME: %H:%M:%S") Created reports folder." >> $LOGFILE
fi
#4. Generate disk list report
diskutil list -plist >> $DISKLIST
echo "$(date "+DATE: %Y-%m-%d%TIME: %H:%M:%S") Disk List report created." >> $LOGFILE
#5. Generate volume report
diskutil info -plist / >> $DISKINFO
echo "$(date "+DATE: %Y-%m-%d%TIME: %H:%M:%S") Volume info report created." >> $LOGFILE
#6. List of available File System formats
diskutil listfilesystems -plist >> $DISKFS
echo "$(date "+DATE: %Y-%m-%d%TIME: %H:%M:%S") FileSystem report created." >> $LOGFILE
#7. APFS List
diskutil apfs list -plist >> $APFSLIST
echo "$(date "+DATE: %Y-%m-%d%TIME: %H:%M:%S") List of APFS volumes created." >> $LOGFILE
#8. APFS CryptoUsers
diskutil apfs listCryptoUsers -plist / >> $APFSCRYPTOUSERS
echo "$(date "+DATE: %Y-%m-%d%TIME: %H:%M:%S") Crypto Users list created." >> $LOGFILE
#9. Compres all reports
zip -r DiskReports.zip $DISKREPORTS
echo "$(date "+DATE: %Y-%m-%d%TIME: %H:%M:%S") Archive of reports created." >> $LOGFILE
#10. Cleanup
rm -r $DISKREPORTS
echo "$(date "+DATE: %Y-%m-%d%TIME: %H:%M:%S") Cleanup done." >> $LOGFILE
Note that the scripts above are not necessarily the best implementations. Feel free to make changes to them to optimise them to your needs.
Pingback: List of macOS Terminal commands | Arun Patwardhan's Blog
Here is another article for your reference: https://arunpatwardhan.com/2020/07/29/list-of-macos-terminal-commands/