1
0
mirror of https://github.com/azlux/log2ram.git synced 2023-10-10 13:37:24 +02:00
ramlog like for systemd (Put log into a ram folder)
Go to file
azlux e41b7630fc
ansible playbook to install log2ram
Merge pull request #156 from smu/master
2021-06-23 16:15:47 +02:00
ansible_playbook ansible playbook to install log2ram 2021-05-08 20:57:14 +02:00
debian rm old cron files 2020-10-01 00:03:56 +02:00
build-packages.sh Replaces CRON usages by a proper systemd timer 2020-07-02 12:04:14 +02:00
install.sh Silence errors when logrotate is not installed 2020-07-22 20:40:02 +00:00
LICENSE Update 2017-04-12 13:28:56 +02:00
log2ram Support path with spaces (#130) 2020-09-30 09:52:39 +02:00
log2ram-daily.service fix part of #121 2020-09-09 13:27:16 +02:00
log2ram-daily.timer move timer to 5 min 2020-09-30 10:01:58 +02:00
log2ram.conf Better readme 2020-10-29 10:05:37 +01:00
log2ram.logrotate Removed unneeded postrotate support 2017-12-29 10:15:43 +01:00
log2ram.service add lighttpd.service in list 2020-05-14 23:23:26 +02:00
README.md Update README.md (#149) 2021-02-21 22:31:36 +01:00
uninstall.sh Hide error if not installed as a package or if dpkg is not available 2020-07-22 20:42:40 +00:00

Log2Ram

Like ramlog for systemd (on debian 8 jessie for example).

Usefull for RaspberryPi for not writing on the SD card all the time. You need it because your SD card doesn't want to suffer anymore!

Explanations: The script creates a /var/log mount point in RAM. So any writing of the log to the /var/log folder will not actually be written to disk (in this case to the SD card for a Raspberry Pi) but directly to RAM. By default, every day, the CRON will launch a synchronization of the RAM to the folder located on the physical disk. The script will also make this copy of RAM to disk in case of machine shutdown (but cannot do it in case of power failure). This way you avoid excessive writing on the SD card.

The script log2ram can work on every linux system. So you can use it with your own daemon manager if you don't have systemd.

Log2Ram is based on transient log for Systemd here : A transient /var/log


Menu

  1. Install
  2. Upgrade
  3. Customize
  4. It is working ?
  5. Uninstall

Install

echo "deb http://packages.azlux.fr/debian/ buster main" | sudo tee /etc/apt/sources.list.d/azlux.list
wget -qO - https://azlux.fr/repo.gpg.key | sudo apt-key add -
apt update
apt install log2ram

Manually

curl -Lo log2ram.tar.gz https://github.com/azlux/log2ram/archive/master.tar.gz
tar xf log2ram.tar.gz
cd log2ram-master
chmod +x install.sh && sudo ./install.sh
cd ..
rm -r log2ram-master

For better performances. RSYNC is a recommended package.

REBOOT before installing anything else (for example apache2)

Upgrade

You need to stop log2ram (service log2ram stop) and start the install. (APT will do it automatically)

Customize

variables :

In the file /etc/log2ram.conf, there are three variables:

  • SIZE: defines the size the log folder will reserve into the RAM (default is 40M).
  • MAIL: Disables the error system mail if there is not enough place on RAM (if set to false)
  • PATH_DISK: activate log2ram for other path than default one. Paths should be separated with a ;
  • ZL2R: Enable zram compatibility (false by default). Check the comment on the config file. See https://github.com/StuartIanNaylor/zram-swap-config to configure a zram space on your raspberry before enable this option.

refresh time:

By default Log2Ram writes to disk every day. If you think this is too much, you can run systemctl edit log2ram-daily.timer and add:

[Timer]
OnCalendar=weekly

... or even disable it with systemctl disable log2ram-daily.timer, if you prefer writing logs only at stop/reboot.

It is working?

You can now check the mount folder in ram with (You will see lines with log2ram if working)

# df -h
…
log2ram          40M  532K   40M   2% /var/log
…

# mount
…
log2ram on /var/log type tmpfs (rw,nosuid,nodev,noexec,relatime,size=40960k,mode=755)
…

The log for log2ram will be written at: /var/log/log2ram.log and available with sudo journalctl -t log2ram

Compressor for zram. Usefull for the COMP_ALG of ZRAM on the config file.

Compressor name Ratio Compression Decompress.
zstd 1.3.4 -1 2.877 470 MB/s 1380 MB/s
zlib 1.2.11 -1 2.743 110 MB/s 400 MB/s
brotli 1.0.2 -0 2.701 410 MB/s 430 MB/s
quicklz 1.5.0 -1 2.238 550 MB/s 710 MB/s
lzo1x 2.09 -1 2.108 650 MB/s 830 MB/s
lz4 1.8.1 2.101 750 MB/s 3700 MB/s
snappy 1.1.4 2.091 530 MB/s 1800 MB/s
lzf 3.6 -1 2.077 400 MB/s 860 MB/s
Now, muffins for everyone!

Uninstall :(

(Because sometime we need it)

With APT

apt remove log2ram

You can use --purge to remove config files as well.

Manually

chmod +x /usr/local/bin/uninstall-log2ram.sh && sudo /usr/local/bin/uninstall-log2ram.sh