mirror of
https://github.com/vincentmli/bpfire.git
synced 2026-04-09 18:45:54 +02:00
Remove ramdisks for RRD databases
Ramdisks are very limited in space and as new graphs are generated for OpenVPN N2N connections, etc. more space is necessary. This patch will enable ramdisks for all systems with more than 490M of memory and allows the user to force using a ramdisk on systems with less memory. Signed-off-by: Alexander Marx <alexander.marx@ipfire.org> Acked-by: Arne Fitzenreiter <arne.fitzenreiter@ipfire.org> Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
This commit is contained in:
committed by
Michael Tremer
parent
74e5c32e19
commit
c4a451eead
@@ -125,12 +125,13 @@ etc/rc.d/init.d/sysctl
|
||||
etc/rc.d/init.d/sysklogd
|
||||
etc/rc.d/init.d/template
|
||||
#etc/rc.d/init.d/tftpd
|
||||
etc/rc.d/init.d/tmpfs
|
||||
#etc/rc.d/init.d/tmpfs
|
||||
#etc/rc.d/init.d/tor
|
||||
etc/rc.d/init.d/udev
|
||||
etc/rc.d/init.d/udev_retry
|
||||
etc/rc.d/init.d/upnpd
|
||||
#etc/rc.d/init.d/vdr
|
||||
etc/rc.d/init.d/vnstat
|
||||
#etc/rc.d/init.d/vdradmin
|
||||
#etc/rc.d/init.d/vsftpd
|
||||
#etc/rc.d/init.d/watchdog
|
||||
@@ -149,13 +150,14 @@ etc/rc.d/rc0.d/K30sshd
|
||||
etc/rc.d/rc0.d/K45random
|
||||
etc/rc.d/rc0.d/K47setclock
|
||||
etc/rc.d/rc0.d/K49cyrus-sasl
|
||||
etc/rc.d/rc0.d/K51vnstat
|
||||
etc/rc.d/rc0.d/K78snort
|
||||
etc/rc.d/rc0.d/K79leds
|
||||
etc/rc.d/rc0.d/K80network
|
||||
etc/rc.d/rc0.d/K82wlanclient
|
||||
#etc/rc.d/rc0.d/K84bluetooth
|
||||
#etc/rc.d/rc0.d/K85messagebus
|
||||
etc/rc.d/rc0.d/K85tmpfs
|
||||
#etc/rc.d/rc0.d/K85tmpfs
|
||||
etc/rc.d/rc0.d/K90sysklogd
|
||||
etc/rc.d/rc0.d/S60sendsignals
|
||||
etc/rc.d/rc0.d/S70localnet
|
||||
@@ -163,7 +165,8 @@ etc/rc.d/rc0.d/S80mountfs
|
||||
etc/rc.d/rc0.d/S90swap
|
||||
etc/rc.d/rc0.d/S99halt
|
||||
#etc/rc.d/rc3.d
|
||||
etc/rc.d/rc3.d/S01tmpfs
|
||||
#etc/rc.d/rc3.d/S01tmpfs
|
||||
etc/rc.d/rc3.d/S01vnstat
|
||||
etc/rc.d/rc3.d/S10sysklogd
|
||||
#etc/rc.d/rc3.d/S15messagebus
|
||||
#etc/rc.d/rc3.d/S16bluetooth
|
||||
@@ -197,13 +200,14 @@ etc/rc.d/rc6.d/K30sshd
|
||||
etc/rc.d/rc6.d/K45random
|
||||
etc/rc.d/rc6.d/K47setclock
|
||||
etc/rc.d/rc6.d/K49cyrus-sasl
|
||||
etc/rc.d/rc6.d/K51vnstat
|
||||
etc/rc.d/rc6.d/K78snort
|
||||
etc/rc.d/rc6.d/K79leds
|
||||
etc/rc.d/rc6.d/K80network
|
||||
etc/rc.d/rc6.d/K82wlanclient
|
||||
#etc/rc.d/rc6.d/K84bluetooth
|
||||
#etc/rc.d/rc6.d/K85messagebus
|
||||
etc/rc.d/rc6.d/K85tmpfs
|
||||
#etc/rc.d/rc6.d/K85tmpfs
|
||||
etc/rc.d/rc6.d/K90sysklogd
|
||||
etc/rc.d/rc6.d/S60sendsignals
|
||||
etc/rc.d/rc6.d/S70mountfs
|
||||
|
||||
@@ -126,13 +126,14 @@ etc/rc.d/init.d/sysctl
|
||||
etc/rc.d/init.d/sysklogd
|
||||
etc/rc.d/init.d/template
|
||||
#etc/rc.d/init.d/tftpd
|
||||
etc/rc.d/init.d/tmpfs
|
||||
#etc/rc.d/init.d/tmpfs
|
||||
#etc/rc.d/init.d/tor
|
||||
#etc/rc.d/init.d/transmission
|
||||
etc/rc.d/init.d/udev
|
||||
etc/rc.d/init.d/udev_retry
|
||||
etc/rc.d/init.d/upnpd
|
||||
#etc/rc.d/init.d/vdr
|
||||
etc/rc.d/init.d/vnstat
|
||||
#etc/rc.d/init.d/vdradmin
|
||||
#etc/rc.d/init.d/vsftpd
|
||||
#etc/rc.d/init.d/watchdog
|
||||
@@ -151,13 +152,14 @@ etc/rc.d/rc0.d/K30sshd
|
||||
etc/rc.d/rc0.d/K45random
|
||||
etc/rc.d/rc0.d/K47setclock
|
||||
etc/rc.d/rc0.d/K49cyrus-sasl
|
||||
etc/rc.d/rc0.d/K51vnstat
|
||||
etc/rc.d/rc0.d/K78snort
|
||||
etc/rc.d/rc0.d/K79leds
|
||||
etc/rc.d/rc0.d/K80network
|
||||
etc/rc.d/rc0.d/K82wlanclient
|
||||
#etc/rc.d/rc0.d/K84bluetooth
|
||||
#etc/rc.d/rc0.d/K85messagebus
|
||||
etc/rc.d/rc0.d/K85tmpfs
|
||||
#etc/rc.d/rc0.d/K85tmpfs
|
||||
etc/rc.d/rc0.d/K87acpid
|
||||
etc/rc.d/rc0.d/K90sysklogd
|
||||
etc/rc.d/rc0.d/S60sendsignals
|
||||
@@ -166,7 +168,8 @@ etc/rc.d/rc0.d/S80mountfs
|
||||
etc/rc.d/rc0.d/S90swap
|
||||
etc/rc.d/rc0.d/S99halt
|
||||
#etc/rc.d/rc3.d
|
||||
etc/rc.d/rc3.d/S01tmpfs
|
||||
#etc/rc.d/rc3.d/S01tmpfs
|
||||
etc/rc.d/rc3.d/S01vnstat
|
||||
etc/rc.d/rc3.d/S10sysklogd
|
||||
etc/rc.d/rc3.d/S12acpid
|
||||
#etc/rc.d/rc3.d/S15messagebus
|
||||
@@ -201,13 +204,14 @@ etc/rc.d/rc6.d/K30sshd
|
||||
etc/rc.d/rc6.d/K45random
|
||||
etc/rc.d/rc6.d/K47setclock
|
||||
etc/rc.d/rc6.d/K49cyrus-sasl
|
||||
etc/rc.d/rc6.d/K51vnstat
|
||||
etc/rc.d/rc6.d/K78snort
|
||||
etc/rc.d/rc6.d/K79leds
|
||||
etc/rc.d/rc6.d/K80network
|
||||
etc/rc.d/rc6.d/K82wlanclient
|
||||
#etc/rc.d/rc6.d/K84bluetooth
|
||||
#etc/rc.d/rc6.d/K85messagebus
|
||||
etc/rc.d/rc6.d/K85tmpfs
|
||||
#etc/rc.d/rc6.d/K85tmpfs
|
||||
etc/rc.d/rc6.d/K87acpid
|
||||
etc/rc.d/rc6.d/K90sysklogd
|
||||
etc/rc.d/rc6.d/S60sendsignals
|
||||
|
||||
@@ -40,6 +40,7 @@ etc/profile.d/term256.sh
|
||||
etc/profile.d/umask.sh
|
||||
etc/resolv.conf
|
||||
etc/securetty
|
||||
etc/sysconfig/ramdisk
|
||||
etc/sysctl.conf
|
||||
etc/syslog.conf
|
||||
etc/system-release
|
||||
|
||||
@@ -61,6 +61,9 @@ $(TARGET) :
|
||||
-rm -rf /etc/init.d
|
||||
ln -svf rc.d/init.d /etc/init.d
|
||||
|
||||
#create ramdiskfile to force ramdiskcreation if FORCE=1
|
||||
echo "FORCE=0" > /etc/sysconfig/ramdisk
|
||||
|
||||
for i in $(DIR_SRC)/src/initscripts/init.d/*; do \
|
||||
install -v -m 754 $$i /etc/rc.d/init.d/; \
|
||||
done
|
||||
@@ -128,9 +131,6 @@ $(TARGET) :
|
||||
ln -sf ../init.d/random /etc/rc.d/rc3.d/S25random
|
||||
ln -sf ../init.d/random /etc/rc.d/rc6.d/K45random
|
||||
ln -sf ../../sysconfig/rc.local /etc/rc.d/rc3.d/S98rc.local
|
||||
ln -sf ../init.d/tmpfs /etc/rc.d/rc0.d/K85tmpfs
|
||||
ln -sf ../init.d/tmpfs /etc/rc.d/rc3.d/S01tmpfs
|
||||
ln -sf ../init.d/tmpfs /etc/rc.d/rc6.d/K85tmpfs
|
||||
ln -sf ../init.d/mediatomb /etc/rc.d/rc3.d/S98mediatomb
|
||||
ln -sf ../init.d/mediatomb /etc/rc.d/rc0.d/K02mediatomb
|
||||
ln -sf ../init.d/mediatomb /etc/rc.d/rc6.d/K02mediatomb
|
||||
@@ -178,6 +178,9 @@ $(TARGET) :
|
||||
ln -sf ../init.d/firewall /etc/rc.d/rcsysinit.d/S85firewall
|
||||
ln -sf ../init.d/network-trigger /etc/rc.d/rcsysinit.d/S90network-trigger
|
||||
ln -sf ../init.d/rngd /etc/rc.d/rcsysinit.d/S92rngd
|
||||
ln -sf ../init.d/vnstat /etc/rc.d/rc3.d/S01vnstat
|
||||
ln -sf ../init.d/vnstat /etc/rc.d/rc0.d/K51vnstat
|
||||
ln -sf ../init.d/vnstat /etc/rc.d/rc6.d/K51vnstat
|
||||
ln -sf ../init.d/wlanclient /etc/rc.d/rc0.d/K82wlanclient
|
||||
ln -sf ../init.d/wlanclient /etc/rc.d/rc3.d/S19wlanclient
|
||||
ln -sf ../init.d/wlanclient /etc/rc.d/rc6.d/K82wlanclient
|
||||
|
||||
@@ -76,6 +76,6 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
|
||||
cd $(DIR_APP) && make all $(MAKETUNING) LOCAL_CONFIGURE_OPTIONS="--enable-readline=yes"
|
||||
cd $(DIR_APP) && make install
|
||||
sed -i 's|eth0|green0|g' /etc/vnstat.conf
|
||||
sed -i 's|/var/lib/vnstat|/var/log/rrd/vnstat|g' /etc/vnstat.conf
|
||||
sed -i 's|/var/lib/vnstat|/var/log/vnstat|g' /etc/vnstat.conf
|
||||
@rm -rf $(DIR_APP)
|
||||
@$(POSTBUILD)
|
||||
|
||||
@@ -77,7 +77,36 @@ case "${1}" in
|
||||
rm -rf /var/run
|
||||
ln -s ../run /var/run
|
||||
fi
|
||||
|
||||
#
|
||||
# create some folders
|
||||
#
|
||||
if [ ! -e /var/lock/subsys ]; then
|
||||
mkdir -p /var/lock/subsys
|
||||
fi
|
||||
if [ ! -e /var/lock/time ]; then
|
||||
mkdir -p /var/lock/time
|
||||
chown nobody.root /var/lock/time
|
||||
fi
|
||||
if [ ! -e /var/run/clamav ]; then
|
||||
mkdir -p /var/run/clamav
|
||||
chown clamav:clamav /var/run/clamav
|
||||
fi
|
||||
if [ ! -e /var/run/cups ]; then
|
||||
mkdir -p /var/run/cups
|
||||
fi
|
||||
if [ ! -e /var/run/dbus ]; then
|
||||
mkdir -p /var/run/dbus
|
||||
fi
|
||||
if [ ! -e /var/run/mysql ]; then
|
||||
mkdir -p /var/run/mysql
|
||||
chown mysql:mysql /var/run/mysql
|
||||
fi
|
||||
if [ ! -e /var/run/saslauthd ]; then
|
||||
mkdir -p /var/run/saslauthd
|
||||
fi
|
||||
if [ ! -e /var/log/vnstat ]; then
|
||||
mkdir -p /var/log/vnstat
|
||||
fi
|
||||
boot_mesg -n "Cleaning file systems:" ${INFO}
|
||||
|
||||
boot_mesg -n " /tmp" ${NORMAL}
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
. $rc_functions
|
||||
|
||||
eval $(/usr/local/bin/readhash /var/ipfire/main/settings)
|
||||
eval $(/usr/local/bin/readhash /etc/sysconfig/ramdisk)
|
||||
|
||||
if [ "$RRDLOG" = '' ]; then
|
||||
RRDLOG=/var/log/rrd
|
||||
@@ -13,6 +14,35 @@ fi
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
if [ "$FORCE" == '1' ] || [ "$(mem_amount)" -gt "490" ];then
|
||||
#mount ramdisk
|
||||
if ! mountpoint $RRDLOG &>/dev/null; then
|
||||
boot_mesg "Mount rrd Ramdisk..."
|
||||
if [ $(find "$RRDLOG" | wc -l) -ne 1 ]; then
|
||||
backup_ramdisk "$RRDLOG"
|
||||
fi
|
||||
mount_ramdisk "$RRDLOG"
|
||||
evaluate_retval
|
||||
#cleanup cron
|
||||
if [ -e $RRDLOG.bak/cron/new.root ]; then
|
||||
if [ -e $RRDLOG.bak/cron/root ]; then
|
||||
rm -f $RRDLOG.bak/cron/new.root
|
||||
fi
|
||||
fi
|
||||
#restore old values to ramdisk if exist
|
||||
restore_ramdisk "$RRDLOG"
|
||||
fi
|
||||
else
|
||||
restore_ramdisk "$RRDLOG"
|
||||
fi
|
||||
#
|
||||
# Move /var/spool/cron to ramdisk and make a symlink
|
||||
#
|
||||
if [ ! -L /var/spool/cron ]; then
|
||||
mv /var/spool/cron /var/log/rrd/cron
|
||||
ln -s /var/log/rrd/cron /var/spool/cron
|
||||
fi
|
||||
|
||||
# If run from init and collectd alrady started then exit silent
|
||||
if [ "$(basename $0)" != "collectd" ]; then
|
||||
if [ "$(ps -A | grep " collectd$")" != "" ]; then
|
||||
@@ -106,10 +136,8 @@ case "$1" in
|
||||
boot_mesg "Stopping Collection daemon..."
|
||||
killproc /usr/sbin/collectd
|
||||
evaluate_retval
|
||||
# Save the ramdisk at manual stop but not at shutdown
|
||||
if [ "$(basename $0)" == "collectd" ]; then
|
||||
/etc/init.d/tmpfs backup
|
||||
fi
|
||||
backup_ramdisk "$RRDLOG"
|
||||
umount_ramdisk "$RRDLOG"
|
||||
# sync after backup...
|
||||
sync
|
||||
;;
|
||||
|
||||
@@ -702,4 +702,35 @@ run_subdir() {
|
||||
done
|
||||
}
|
||||
|
||||
mem_amount() {
|
||||
local pagesize="$(getconf PAGESIZE)"
|
||||
local pages="$(getconf _PHYS_PAGES)"
|
||||
|
||||
echo "$(( ${pagesize} * ${pages} / 1024 / 1024 ))"
|
||||
}
|
||||
|
||||
mount_ramdisk() {
|
||||
mount -t tmpfs none $1
|
||||
}
|
||||
|
||||
umount_ramdisk() {
|
||||
if mountpoint $1 &>/dev/null; then
|
||||
umount $1
|
||||
fi
|
||||
}
|
||||
|
||||
backup_ramdisk() {
|
||||
if [ ! -e $1.bak ]; then
|
||||
mkdir -p $1.bak
|
||||
fi
|
||||
cp -pR $1/* $1.bak/
|
||||
rm -rf $1/*
|
||||
}
|
||||
|
||||
restore_ramdisk() {
|
||||
if [ -e $1.bak ];then
|
||||
cp -pR $1.bak/* $1/
|
||||
rm -rf $1.bak/*
|
||||
fi
|
||||
}
|
||||
# End $rc_base/init.d/functions
|
||||
|
||||
@@ -1,93 +0,0 @@
|
||||
#!/bin/sh
|
||||
# Begin $rc_base/init.d/tmpfs
|
||||
|
||||
. /etc/sysconfig/rc
|
||||
. $rc_functions
|
||||
|
||||
eval $(/usr/local/bin/readhash /var/ipfire/main/settings)
|
||||
|
||||
if [ "$RRDLOG" = '' ]; then
|
||||
RRDLOG=/var/log/rrd
|
||||
fi
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
$0 restore
|
||||
if [ ! -e $RRDLOG.bak/vnstat ]; then
|
||||
mkdir -p $RRDLOG.bak/vnstat
|
||||
fi
|
||||
if [ ! -e $RRDLOG/vnstat ]; then
|
||||
mkdir -p $RRDLOG/vnstat
|
||||
fi
|
||||
#
|
||||
# create some folders
|
||||
#
|
||||
if [ ! -e /var/lock/subsys ]; then
|
||||
mkdir -p /var/lock/subsys
|
||||
fi
|
||||
if [ ! -e /var/lock/time ]; then
|
||||
mkdir -p /var/lock/time
|
||||
chown nobody.root /var/lock/time
|
||||
fi
|
||||
if [ ! -e /var/run/clamav ]; then
|
||||
mkdir -p /var/run/clamav
|
||||
chown clamav:clamav /var/run/clamav
|
||||
fi
|
||||
if [ ! -e /var/run/cups ]; then
|
||||
mkdir -p /var/run/cups
|
||||
fi
|
||||
if [ ! -e /var/run/dbus ]; then
|
||||
mkdir -p /var/run/dbus
|
||||
fi
|
||||
if [ ! -e /var/run/mysql ]; then
|
||||
mkdir -p /var/run/mysql
|
||||
chown mysql:mysql /var/run/mysql
|
||||
fi
|
||||
if [ ! -e /var/run/saslauthd ]; then
|
||||
mkdir -p /var/run/saslauthd
|
||||
fi
|
||||
|
||||
#
|
||||
# Move /var/spool/cron to ramdisk and make a symlink
|
||||
#
|
||||
if [ ! -L /var/spool/cron ]; then
|
||||
cp -pR /var/spool/cron /var/log/rrd.bak/cron
|
||||
mv /var/spool/cron /var/log/rrd/cron
|
||||
ln -s /var/log/rrd/cron /var/spool/cron
|
||||
fi
|
||||
|
||||
echo_ok
|
||||
;;
|
||||
stop)
|
||||
$0 backup
|
||||
;;
|
||||
|
||||
backup)
|
||||
boot_mesg "Save ramdisk..."
|
||||
cp -pR $RRDLOG/* $RRDLOG.bak/
|
||||
evaluate_retval
|
||||
;;
|
||||
restore)
|
||||
if ! mountpoint $RRDLOG &>/dev/null; then
|
||||
mount -t tmpfs -o size=64M none "$RRDLOG"
|
||||
fi
|
||||
|
||||
if [ -e $RRDLOG.bak/cron/new.root ]; then
|
||||
if [ -e $RRDLOG.bak/cron/root ]; then
|
||||
rm -f $RRDLOG.bak/cron/new.root
|
||||
fi
|
||||
fi
|
||||
if [ -e $RRDLOG.bak ];then
|
||||
boot_mesg "Restore ramdisk..."
|
||||
cp -pR $RRDLOG.bak/* $RRDLOG/
|
||||
fi
|
||||
;;
|
||||
|
||||
|
||||
*)
|
||||
echo "Usage: $0 {start|stop|backup}"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
# End $rc_base/init.d/tmpfs
|
||||
45
src/initscripts/init.d/vnstat
Executable file
45
src/initscripts/init.d/vnstat
Executable file
@@ -0,0 +1,45 @@
|
||||
#!/bin/sh
|
||||
# Begin $rc_base/init.d/vnstat
|
||||
|
||||
. /etc/sysconfig/rc
|
||||
. $rc_functions
|
||||
|
||||
eval $(/usr/local/bin/readhash /var/ipfire/main/settings)
|
||||
|
||||
if [ "$VNSTATLOG" = '' ]; then
|
||||
VNSTATLOG=/var/log/vnstat
|
||||
fi
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
if [ "$FORCE" == '1' ] || [ "$(mem_amount)" -gt "490" ];then
|
||||
if ! mountpoint $VNSTATLOG &>/dev/null; then
|
||||
boot_mesg "Mount vnstat ramdisk..."
|
||||
if [ $(find "$VNSTATLOG" | wc -l) -ne 1 ]; then
|
||||
backup_ramdisk "$VNSTATLOG"
|
||||
fi
|
||||
mount_ramdisk "$VNSTATLOG"
|
||||
evaluate_retval
|
||||
$0 restore
|
||||
fi
|
||||
else
|
||||
restore_ramdisk "$VNSTATLOG"
|
||||
fi
|
||||
;;
|
||||
stop)
|
||||
$0 backup
|
||||
umount_ramdisk "$VNSTATLOG"
|
||||
;;
|
||||
backup)
|
||||
backup_ramdisk "$VNSTATLOG"
|
||||
;;
|
||||
restore)
|
||||
restore_ramdisk "$VNSTATLOG"
|
||||
;;
|
||||
*)
|
||||
echo "Usage: $0 {start|stop|backup}"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
# End $rc_base/init.d/vnstat
|
||||
Reference in New Issue
Block a user