You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
StuartIanNaylor b5d594295e
Update README.md
5 年之前
LICENSE Update 7 年之前
README.md Update README.md 5 年之前
install.sh exclude oldlog initial copy 5 年之前
log2ram --exclude oldlog comment 5 年之前
log2ram-lastcheck Add oldlog funct 5 年之前
log2ram.conf Tweak Prune conf level 5 年之前
log2ram.hourly Use env instead of /bin/sh 6 年之前
log2ram.logrotate Removed unneeded postrotate support 7 年之前
log2ram.service Add oldlog funct 5 年之前
uninstall.sh Add oldlog funct 5 年之前

README.md

Log2Zram

Usefull for IoD / maker projects for reducing SD, Nand and Emmc block wear via log operations. Uses Zram to minimise precious memory footprint and extremely infrequent write outs.

Log2Zam is a lower write fork https://github.com/azlux/log2ram based on transient log for Systemd here : A transient /var/log

Can not be used for mission critical logging applications where a system crash and log loss is unaceptable. If the extremely unlikely event of a system crash is not a major concern then L2Z can massively reduce log block wear whilst maintinaing and extremely tiny memory footprint.


Menu

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

Install

sudo apt-get install git rsync
git clone https://github.com/StuartIanNaylor/log2zram
cd log2zram
sudo sh install.sh

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).
  • USE_RSYNC: Can be set to true if you prefer ´rsync´ rather than ´cp´. I use the command cp -u and rsync -X, I don’t copy the all folder every time for optimization.
  • MAIL: Disables the error system mail if there is not enough place on RAM (if set to false)

refresh time:

By default Log2Zram checks available log space every hour. It them makes a comparison of the percentage set via Prune_Level and only writes out old logs to disk when triggered and then removes the collected old logs from zram space.

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)
…

Testing

sudo service log2ram reload

Checks PRUNE_LEVEL < available free space if true will move and clean /var/log/oldlog to hdd.log

sudo logrotate -vf /etc/logrotate.conf

Force the daily logrotate with verbose output

If you have issue with apache2, you can try to add apache2.service next to other services on the Before parameter in /etc/systemd/system/log2ram.service it will solve the pb

The log for log2ram will be written at: /var/log/log2ram.log

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

Uninstall :(

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

Also /var/oldlog contains the pruned logs from install delete if not required (prob not)