Skip to content

Commit

Permalink
Merge pull request #121 from PartialVolume/logfiles_to_USB
Browse files Browse the repository at this point in the history
New feature added, auto archive nwipe log files to ShredOS USB stick …
  • Loading branch information
PartialVolume authored Dec 29, 2022
2 parents 3412ffa + 22d2422 commit a7acbf2
Show file tree
Hide file tree
Showing 2 changed files with 91 additions and 0 deletions.
89 changes: 89 additions & 0 deletions board/shredos/fsoverlay/usr/bin/archive_log.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
#!/bin/bash
#
# This script will archive the nwipe log file to a FAT32 formatted partition.
# If there is more than one FAT32 drive this script will always archive
# to the first drive found.
#
# Written by PartialVolume, a component of ShredOS - the disk eraser.

exit_code=0

# This is the temporary directory that the FAT32 drive is to be mounted on
archive_drive_directory="/archive_drive"

# The nwipe logs that have been sent are moved into this directory in RAM disk.
sent_directory="/sent"

# From all the drives on the system, find the first and probably only FAT32 partition
drive=$(fdisk -l | grep -i '/dev/*' | grep -i FAT32 | awk '{print $1}' | head -n 1)

if [ "$drive" == "" ]; then
printf "archive_log.sh: No FAT32 formatted drive found, unable to archive nwipe log file\n"
exit 1
else
printf "Archiving nwipe logs to $drive\n"
fi

# Create the temporary directory we will mount the FAT32 partition onto.
if [ ! -d "$archive_drive_directory" ]; then
mkdir "$archive_drive_directory"
if [ $? != 0 ]; then
printf "archive_log.sh: Unable to create the temporary mount directory $archive_drive_directory\n"
exit_code=2
fi
fi

# mount the FAT32 partition onto the temporary directory
mount $drive $archive_drive_directory
status=$?
if [ $status != 0 ] && [ $status != 32 ]; then
# exit only if error, except code 32 which means already mounted
printf "archive_log.sh: Unable to mount the FAT32 partition $drive to $archive_drive_directory\n"
exit_code=3
else
printf "archive_log.sh: FAT32 partition $drive is now mounted to $archive_drive_directory\n"

# Copy the nwipe log files over to the FAT32 partition
cp /nwipe_log* "$archive_drive_directory/"
if [ $? != 0 ]; then
printf "archive_log.sh: Unable to copy the nwipe log files to the root of $drive:/\n"
exit_code=4
else
printf "archive_log.sh: Successfully copied the nwipe logs to $drive:/\n"

# Create the temporary sent directory we will move log files that have already been copied
if [ ! -d "$sent_directory" ]; then
mkdir "$sent_directory"
if [ $? != 0 ]; then
printf "archive_log.sh: Unable to create the temporary directory $sent_directory on the RAM disc\n"
exit_code=5
fi
fi

if [ exit_code != 5 ]; then
# Move the nwipe logs into the RAM disc sent directory
mv /nwipe_log* "$sent_directory/"
if [ $? != 0 ]; then
printf "archive_log.sh: Unable to move the nwipe logs into the $sent_directory on the RAM disc\n"
exit_code=6
else
printf "archive_log.sh: Moved the nwipe logs into the $sent_directory\n"
fi
fi
fi
fi

# unmount the FAT32 drive
sleep 1
umount "$archive_drive_directory"
if [ $? != 0 ]; then
printf "archive_log.sh: Unable to unmount the FAT32 partition\n"
exit_code=7
else
printf "archive_log.sh: Successfully unmounted $archive_drive_directory ($drive)\n"
fi

if [ $exit_code != 0 ]; then
printf "archive_log.sh: Failed to copy nwipe log files to $drive, exit code $exit_code\n"
fi
exit $exit_code
2 changes: 2 additions & 0 deletions board/shredos/fsoverlay/usr/bin/nwipe_launcher
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,8 @@ then
fi
fi

/usr/bin/archive_log.sh

printf ""
printf "Paused, press a key to restart nwipe."
read -rsn1 input
Expand Down

0 comments on commit a7acbf2

Please sign in to comment.