#!/bin/bash if ! mountpoint -q /mnt ; then echo "I do not seem to see a Mageia install mounted on /mnt. You need to mount it first!" >&2 exit 1 fi if [ ! -f /mnt/etc/machine-id ]; then echo "Cannot find machine-id file (/mnt/etc/machine-id)" >&2 exit 1 fi MID=$(cat /mnt/etc/machine-id) echo echo "Found machine-id: $MID" if [ ! -d /mnt/var/log/journal/$MID ]; then echo "Cannot find journal log directory (/mnt/var/log/journal/)" >&2 exit 1 fi TIMEFRAME=24 if [ -n "$1" ]; then NEWTIMEFRAME=$(( 0 + $1 )) if [ $NEWTIMEFRAME -gt 0 ]; then TIMEFRAME=$NEWTIMEFRAME fi fi SINCE="$(LC_ALL=c date --date=$TIMEFRAME' hours ago' +'%F %T')" echo "Will collect logs from the last $TIMEFRAME hour(s)" echo " NB give numeric argument to override capture period" TEMPFILE=$(mktemp /tmp/grabjournallogs.XXXXXX) echo -n "Extracting logs... " journalctl -D /mnt/var/log/journal/$MID --since "$SINCE" -o short >$TEMPFILE echo "done" if [ $(cat $TEMPFILE | wc -l) -lt 2 ]; then rm -f $TEMPFILE echo >&2 echo "Cannot find any logs. Consider increasing the capture period by passing a" >&2 echo "numeric argument larger than $TIMEFRAME." >&2 exit 1 fi echo -n "Compressing logs... " cat $TEMPFILE | xz >/journallogs.xz rm -f $TEMPFILE echo "done" echo echo "Your logs have been extracted to the file 'journallogs.xz'"