D.12. /etc/rc.d/init.d/cleanfs


#!/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)

        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/lock" ${NORMAL}

        cd /var/lock &&

        find . -type f -exec rm -f {} \; || failed=1



        boot_mesg " /var/run" ${NORMAL}

        cd /var/run &&

        find . ! -type d ! -name utmp \

            -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


Host by Alair