All Projects → azlux → Log2ram

azlux / Log2ram

Licence: mit
ramlog like for systemd (Put log into a ram folder)

Programming Languages

shell
77523 projects

Projects that are alternatives of or similar to Log2ram

Balena Minecraft Server
Build a Minecraft Server using a Raspberry Pi 4! Supports common Servers, SCP, RCON and Wifi Connect.
Stars: ✭ 125 (-92.86%)
Mutual labels:  raspberry-pi, sd-card
esp-logger
An Arduino library providing a minimal interface to log data on flash memory and SD cards with ESP8266 and ESP32
Stars: ✭ 40 (-97.72%)
Mutual labels:  log, sd-card
Pishrink
Make your pi images smaller!
Stars: ✭ 2,255 (+28.78%)
Mutual labels:  raspberry-pi, sd-card
Portablecellnetwork
Utilize a Raspberry Pi and a Nuand BladeRF to generate your own portable local cell network
Stars: ✭ 302 (-82.75%)
Mutual labels:  raspberry-pi, sd-card
Raspberry Pi
My public Baremetal Raspberry Pi code
Stars: ✭ 218 (-87.55%)
Mutual labels:  raspberry-pi, sd-card
Hassctl
Simple command line utility to help debug Home Assistant configuration
Stars: ✭ 77 (-95.6%)
Mutual labels:  raspberry-pi, systemd
Scroll Phat
Library and examples for Scroll pHAT. 11x5 LEDs of goodness!
Stars: ✭ 100 (-94.29%)
Mutual labels:  raspberry-pi
Movel
Móvel - Dashboard for Raspberry pi car computer
Stars: ✭ 103 (-94.12%)
Mutual labels:  raspberry-pi
Fas
C Pixels-based graphical audio synthesizer implemented as a WebSocket server
Stars: ✭ 100 (-94.29%)
Mutual labels:  raspberry-pi
Swift Arm64
Swift for Arm64/aarch64 Servers and SBC's - Rock64, RaspberryPi3 and many more
Stars: ✭ 100 (-94.29%)
Mutual labels:  raspberry-pi
Endbasic
BASIC environment with a REPL, a web interface, and RPi support written in Rust
Stars: ✭ 106 (-93.95%)
Mutual labels:  raspberry-pi
App Release
An IoT Solution,this is the android release app | download ios app in app store
Stars: ✭ 104 (-94.06%)
Mutual labels:  raspberry-pi
Icmethoddigger
An easy way to print almost methods including private methods (supported arm64 architecture devices).
Stars: ✭ 103 (-94.12%)
Mutual labels:  log
Cirnos
Bringing the workflow of Arduino to the Raspberry Pi
Stars: ✭ 101 (-94.23%)
Mutual labels:  raspberry-pi
Zlog
A high-performance distributed shared-log for Ceph
Stars: ✭ 103 (-94.12%)
Mutual labels:  log
Automation Hat
Python library and examples for the Pimoroni Automation HAT, pHAT and HAT Mini
Stars: ✭ 100 (-94.29%)
Mutual labels:  raspberry-pi
Overlayroot
mounts an overlay file system over root
Stars: ✭ 104 (-94.06%)
Mutual labels:  raspberry-pi
Dumpvdl2
VDL Mode 2 message decoder and protocol analyzer
Stars: ✭ 100 (-94.29%)
Mutual labels:  raspberry-pi
Iotstack
docker stack for getting started on IOT on the Raspberry PI
Stars: ✭ 1,383 (-21.02%)
Mutual labels:  raspberry-pi
Spokestack Python
Spokestack is a library that allows a user to easily incorporate a voice interface into any Python application.
Stars: ✭ 103 (-94.12%)
Mutual labels:  raspberry-pi

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


Table of Contents

  1. Install
  2. Is it working?
  3. Upgrade
  4. Customize
  5. Troubleshooting
  6. Uninstall

Install

With APT (recommended)

echo "deb http://packages.azlux.fr/debian/ bullseye main" | sudo tee /etc/apt/sources.list.d/azlux.list
wget -qO - https://azlux.fr/repo.gpg.key | sudo apt-key add -
sudo apt update
sudo 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)

Is it working?

After installing and rebooting, use systemctl to check if Log2Ram started successfully:

systemctl status log2ram

This will show a color-coded status (green active/red failed) as well as the last few log lines. To show the full log (scrolled to the end), run:

journalctl -u log2ram -e

The log is also written to /var/log/log2ram.log.

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

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

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

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=
OnCalendar=Mon *-*-* 23:55:00

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

compressor:

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!

Troubleshooting

Existing content in /var/log too large for RAM

One thing that stops Log2Ram from starting is if /var/log is to large before starting Log2Ram the first time. This can happen if logs had been collected for a long time before installing Log2Ram. Find the largest directories in /var/log (this commands only shows the 3 largest):

sudo du -hs /var/log/* | sort -h | tail -n 3

If the /var/log/journal is very large, then there are a lot of system logs. Deletion of old "archived" logs can be fixed by adjusting a setting. Edit the /etc/systemd/journald.conf file and add the following option:

SystemMaxUse=20M

This should be set to a value smaller than the size of the RAM volume, for example half. Then apply the new setting:

sudo systemctl restart systemd-journald

This should shrink the size of "archived" logs to be below the limit. Reboot and check that Log2Ram succeds:

sudo reboot
…
systemctl status log2ram

Uninstall :(

(Because sometime we need it)

With APT

sudo 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
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].