Formatting fixes and log creation only when needed

This commit is contained in:
Thomas Kaiser 2018-07-09 15:40:12 +02:00 committed by GitHub
parent 94abeef059
commit 5bd6ab4b0d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -1,4 +1,4 @@
#!/bin/sh
#!/bin/bash
#
# Copyright (c) Authors: http://www.armbian.com/authors
#
@ -22,68 +22,75 @@ LOG2RAM_LOG="${HDD_LOG}armbian-ramlog.log"
LOG_OUTPUT="tee -a $LOG2RAM_LOG"
isSafe () {
[ -d $HDD_LOG ] || echo "ERROR: $HDD_LOG doesn't exist! Can't sync."
[ -d $HDD_LOG ] || exit 1
[ -d $HDD_LOG ] || echo "ERROR: $HDD_LOG doesn't exist! Can't sync."
[ -d $HDD_LOG ] || exit 1
}
RecreateLogs (){
# in case of crash those services doesn't start if there are no dirs & logs
[ ! -d /var/log/proftpd ] && mkdir -p /var/log/proftpd
[ ! -d /var/log/nginx ] && mkdir -p /var/log/nginx
[ ! -f /var/log/proftpd/controls.log ] && touch /var/log/proftpd/controls.log
[ ! -f /var/log/nginx/access.log ] && touch /var/log/nginx/access.log
[ ! -f /var/log/nginx/error.log ] && touch /var/log/nginx/error.log
check_if_installed apache2 && [ ! -d /var/log/apache2 ] && mkdir -p /var/log/apache2
check_if_installed proftpd-basic && [ ! -d /var/log/proftpd ] && \
(mkdir -p /var/log/proftpd ; touch /var/log/proftpd/controls.log)
check_if_installed nginx && [ ! -d /var/log/nginx ] && \
(mkdir -p /var/log/nginx ; touch /var/log/nginx/access.log ; touch /var/log/nginx/error.log)
check_if_installed samba && [ ! -d /var/log/samba ] && mkdir -p /var/log/samba
}
syncToDisk () {
isSafe
isSafe
if [ "$USE_RSYNC" = true ]; then
rsync -aXWv --exclude armbian-ramlog.log --links $RAM_LOG $HDD_LOG 2>&1 | $LOG_OUTPUT
else
cp -rfup $RAM_LOG -T $HDD_LOG 2>&1 | $LOG_OUTPUT
fi
if [ "$USE_RSYNC" = true ]; then
rsync -aXWv --exclude armbian-ramlog.log --links $RAM_LOG $HDD_LOG 2>&1 | $LOG_OUTPUT
else
cp -rfup $RAM_LOG -T $HDD_LOG 2>&1 | $LOG_OUTPUT
fi
}
syncFromDisk () {
isSafe
isSafe
if [ "$USE_RSYNC" = true ]; then
if [ "$USE_RSYNC" = true ]; then
rsync -aXWv --delete --exclude armbian-ramlog.log --exclude *.gz --exclude='*.[0-9]' --links $HDD_LOG $RAM_LOG 2>&1 | $LOG_OUTPUT
else
else
#find $RAM_LOG* -maxdepth 1 -type f -not \( -name '*.[0-9]' -or -name '*.xz*' -or -name '*.gz' \) | awk -v var="$RAM_LOG" '{print var $1}' | xargs cp -t $RAM_LOG
find $HDD_LOG* -maxdepth 1 -type f -not \( -name '*.[0-9]' -or -name '*.xz*' -or -name '*.gz' \) | xargs cp -ut $RAM_LOG
fi
fi
}
check_if_installed () {
local DPKG_Status="$(dpkg -s "$1" 2>/dev/null | awk -F": " '/^Status/ {print $2}')"
if [[ "X${DPKG_Status}" = "X" || "${DPKG_Status}" = *deinstall* ]]; then
return 1
else
return 0
fi
}
case "$1" in
start)
[ -d $HDD_LOG ] || mkdir $HDD_LOG
mount --bind $RAM_LOG $HDD_LOG
mount --make-private $HDD_LOG
rm -f $LOG2RAM_LOG
# zram type
if [ "$(blkid -s TYPE /dev/zram0 | awk ' { print $2 } ' | grep ext4)" ]; then
mount /dev/zram0 $RAM_LOG | $LOG_OUTPUT
else
mount -t tmpfs -o nosuid,noexec,nodev,mode=0755,size=$SIZE armbian-ramlog $RAM_LOG | $LOG_OUTPUT
fi
syncFromDisk
RecreateLogs
;;
stop)
syncToDisk
umount -l $RAM_LOG
umount -l $HDD_LOG
;;
write)
syncToDisk
;;
*)
echo "Usage: log2ram {start|stop|write}" >&2
exit 1
;;
start)
[ -d $HDD_LOG ] || mkdir -p $HDD_LOG
mount --bind $RAM_LOG $HDD_LOG
mount --make-private $HDD_LOG
rm -f $LOG2RAM_LOG
# zram type
if [ "$(blkid -s TYPE /dev/zram0 | awk ' { print $2 } ' | grep ext4)" ]; then
mount /dev/zram0 $RAM_LOG | $LOG_OUTPUT
else
mount -t tmpfs -o nosuid,noexec,nodev,mode=0755,size=$SIZE armbian-ramlog $RAM_LOG | $LOG_OUTPUT
fi
syncFromDisk
RecreateLogs
;;
stop)
syncToDisk
umount -l $RAM_LOG
umount -l $HDD_LOG
;;
write)
syncToDisk
;;
*)
echo "Usage: log2ram {start|stop|write}" >&2
exit 1
;;
esac