fix readme, add fecture

Added:
- check on install
- clear old folder on install
- better uninstall script
- use systemctl instead of manually call script in the cron
This commit is contained in:
azlux 2017-12-16 12:15:39 +01:00 committed by GitHub
commit 9f60f97849
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 30 additions and 16 deletions

View File

@ -36,7 +36,7 @@ mount
If you have issue with apache2 , you can try to add `apache2.service` next to other services on the `Before` parameter into /etc/systemd/system/log2ram.service it will solve the pb
The log for log2ram will be write here : `/var/log.hdd/log2ram.log`
The log for log2ram will be write here : `/var/hdd.log/log2ram.log`
###### Now, muffins for everyone !

View File

@ -1,5 +1,8 @@
#!/bin/sh
[ -d /var/hdd.log ] && echo "ERROR: log2ram still installed. Uninstall first!"
[ -d /var/hdd.log ] && exit 1
if [ `id -u` -eq 0 ]
then
cp log2ram.service /etc/systemd/system/log2ram.service
@ -11,11 +14,16 @@ then
systemctl enable log2ram
cp log2ram.hourly /etc/cron.hourly/log2ram
chmod +x /etc/cron.hourly/log2ram
if [ -d /var/log.hdd ]; then
# Remove a previous log2ram version
if [ -d /var/log.hdd]; then
rm -r /var/log.hdd
fi
if [ -d /var/hdd.log ]; then
rm -r /var/hdd.log
fi
echo "##### Reboot to activate log2ram #####"
else
echo "You need to be ROOT (sudo can be used)"

23
log2ram
View File

@ -5,11 +5,12 @@
HDD_LOG=/var/hdd.log
RAM_LOG=/var/log
LOG2RAM_LOG="${HDD_LOG}/log2ram.log"
LOG_NAME="log2ram.log"
LOG2RAM_LOG="${HDD_LOG}/${LOG_NAME}"
LOG_OUTPUT="tee -a $LOG2RAM_LOG"
isSafe () {
[ -d $HDD_LOG/ ] || echo "ERROR: $HDD_LOG/ doesn't exist! Can't sync."
[ -d $HDD_LOG/ ] || echo "ERROR: $HDD_LOG/ doesn't exist! Can't sync."
[ -d $HDD_LOG/ ] || exit 1
}
@ -17,7 +18,7 @@ syncToDisk () {
isSafe
if [ "$USE_RSYNC" = true ]; then
rsync -aXWv --delete --exclude log2ram.log --links $RAM_LOG/ $HDD_LOG/ 2>&1 | $LOG_OUTPUT
rsync -aXWv --delete --exclude $LOG_NAME --links $RAM_LOG/ $HDD_LOG/ 2>&1 | $LOG_OUTPUT
else
cp -rfup $RAM_LOG/ -T $HDD_LOG/ 2>&1 | $LOG_OUTPUT
fi
@ -30,14 +31,14 @@ syncFromDisk () {
echo "ERROR: RAM disk too small. Can't sync."
umount -l $RAM_LOG/
umount -l $HDD_LOG/
if [ "$MAIL" = true ]; then
echo "LOG2RAM : No place on RAM anymore, fallback on the disk" | mail -s 'Log2Ram Error' root;
fi
if [ "$MAIL" = true ]; then
echo "LOG2RAM : No place on RAM anymore, fallback on the disk" | mail -s 'Log2Ram Error' root;
fi
exit 1
fi
if [ "$USE_RSYNC" = true ]; then
rsync -aXWv --delete --exclude log2ram.log --links $HDD_LOG/ $RAM_LOG/ 2>&1 | $LOG_OUTPUT
rsync -aXWv --delete --exclude $LOG_NAME --links $HDD_LOG/ $RAM_LOG/ 2>&1 | $LOG_OUTPUT
else
cp -rfup $HDD_LOG/ -T $RAM_LOG/ 2>&1 | $LOG_OUTPUT
fi
@ -45,17 +46,17 @@ syncFromDisk () {
wait_for () {
while ! grep -qs $1 /proc/mounts; do
sleep 0.1
done
sleep 0.1
done
}
case "$1" in
start)
[ -d $HDD_LOG/ ] || mkdir $HDD_LOG/
rm -f $LOG2RAM_LOG
mount --bind $RAM_LOG/ $HDD_LOG/
mount --make-private $HDD_LOG/
wait_for $HDD_LOG
rm -f $LOG2RAM_LOG
mount -t tmpfs -o nosuid,noexec,nodev,mode=0755,size=$SIZE log2ram $RAM_LOG/
wait_for $RAM_LOG
syncFromDisk
@ -70,7 +71,7 @@ case "$1" in
write)
syncToDisk
;;
*)
echo "Usage: log2ram {start|stop|write}" >&2
exit 1

View File

@ -1,3 +1,3 @@
#! /bin/sh
#!/bin/sh
/usr/local/bin/log2ram write > /dev/null
systemctl reload log2ram

View File

@ -8,6 +8,11 @@ then
rm /usr/local/bin/log2ram
rm /etc/log2ram.conf
rm /etc/cron.hourly/log2ram
if [ -d /var/hdd.log ]; then
rm -r /var/hdd.log
fi
echo "##### Reboot isn't needed #####"
else
echo "You need to be ROOT (sudo can be used)"