#!/bin/sh ######################################################################## # Begin $rc_base/init.d/cleanfs # # Description : Clean file system # # Authors : Gerard Beekmans - gerard@linuxfromscratch.org # # Version : 00.00 # # Notes : # ######################################################################## . /etc/sysconfig/rc . ${rc_functions} # Function to create files/directory on boot. create_files() { # Read in the configuration file. exec 9>&0 < /etc/sysconfig/createfiles while read name type perm usr grp dtype maj min junk do # Ignore comments and blank lines. case "${name}" in ""|\#*) continue ;; esac # Ignore existing files. if [ ! -e "${name}" ]; then # Create stuff based on its type. case "${type}" in dir) mkdir "${name}" ;; file) :> "${name}" ;; dev) case "${dtype}" in char) mknod "${name}" c ${maj} ${min} ;; block) mknod "${name}" b ${maj} ${min} ;; pipe) mknod "${name}" p ;; *) boot_mesg -n "\nUnknown device type: ${dtype}" ${WARNING} boot_mesg "" ${NORMAL} ;; esac ;; *) boot_mesg -n "\nUnknown type: ${type}" ${WARNING} boot_mesg "" ${NORMAL} continue ;; esac # Set up the permissions, too. chown ${usr}:${grp} "${name}" chmod ${perm} "${name}" fi done exec 0>&9 9>&- } case "${1}" in start) if [[ ! -L "/var/run" ]]; then boot_mesg "Repair /var/run symlink to /run..." mv -u /var/run/* /run/ 2>&1 > /dev/null 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/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} cd /tmp && find . -xdev -mindepth 1 ! -name lost+found \ -delete || failed=1 boot_mesg -n " /var/ipfire/dhcp" ${NORMAL} cd /var/ipfire/dhcpc/ && find . -name "*.pid" -exec rm -f {} \; || failed=1 cd /var/ipfire/dhcpc/ && find . -name "*.cache" -exec rm -f {} \; || failed=1 cd /var/ipfire/dhcpc/ && find . -name "*.info" -exec rm -f {} \; || failed=1 boot_mesg -n " /var/ipfire/red" ${NORMAL} cd /var/ipfire/red/ && find . -name active -exec rm -f {} \; || failed=1 boot_mesg -n " /var/lock" ${NORMAL} cd /var/lock && find . -type f ! -newer /proc -exec rm -f {} \; || failed=1 boot_mesg -n " /var/log/updatexlrator" ${NORMAL} rm -f /var/log/updatexlrator/checkdeaddl.lck boot_mesg " /var/run" ${NORMAL} cd /var/run && find . ! -type d ! -name utmp ! -newer /proc \ -exec rm -f {} \; || failed=1 > /var/run/utmp if grep -q '^utmp:' /etc/group ; then chmod 664 /var/run/utmp chgrp utmp /var/run/utmp fi (exit ${failed}) evaluate_retval if egrep -qv '^(#|$)' /etc/sysconfig/createfiles 2>/dev/null; then boot_mesg "Creating files and directories..." create_files evaluate_retval fi ;; *) echo "Usage: ${0} {start}" exit 1 ;; esac # End $rc_base/init.d/cleanfs