mirror of
https://github.com/vincentmli/bpfire.git
synced 2026-04-16 14:03:00 +02:00
158 lines
3.6 KiB
Bash
158 lines
3.6 KiB
Bash
#!/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/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}
|
|
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
|