48 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
#!/bin/sh
 | 
						|
#
 | 
						|
# e2croncheck -- run e2fsck automatically out of /etc/cron.weekly
 | 
						|
#
 | 
						|
# This script is intended to be run by the system administrator 
 | 
						|
# periodically from the command line, or to be run once a week
 | 
						|
# or so by the cron daemon to check a mounted filesystem (normally
 | 
						|
# the root filesystem, but it could be used to check other filesystems
 | 
						|
# that are always mounted when the system is booted).
 | 
						|
#
 | 
						|
# Make sure you customize "VG" so it is your LVM volume group name, 
 | 
						|
# "VOLUME" so it is the name of the filesystem's logical volume, 
 | 
						|
# and "EMAIL" to be your e-mail address
 | 
						|
#
 | 
						|
# Written by Theodore Ts'o, Copyright 2007, 2008, 2009.
 | 
						|
#
 | 
						|
# This file may be redistributed under the terms of the 
 | 
						|
# GNU Public License, version 2.
 | 
						|
#
 | 
						|
 | 
						|
VG=ssd
 | 
						|
VOLUME=root
 | 
						|
SNAPSIZE=100m
 | 
						|
EMAIL=sysadmin@example.com
 | 
						|
 | 
						|
TMPFILE=`mktemp ${TMPDIR:-/tmp}/e2fsck.log.XXXXXXXXXX`
 | 
						|
 | 
						|
OPTS="-Fttv -C0"
 | 
						|
#OPTS="-Fttv -E fragcheck"
 | 
						|
 | 
						|
set -e
 | 
						|
START="$(date +'%Y%m%d%H%M%S')"
 | 
						|
lvcreate -s -L ${SNAPSIZE} -n "${VOLUME}-snap" "${VG}/${VOLUME}"
 | 
						|
if nice logsave -as $TMPFILE e2fsck -p $OPTS "/dev/${VG}/${VOLUME}-snap" && \
 | 
						|
   nice logsave -as $TMPFILE e2fsck -fy $OPTS "/dev/${VG}/${VOLUME}-snap" ; then
 | 
						|
  echo 'Background scrubbing succeeded!'
 | 
						|
  tune2fs -C 0 -T "${START}" "/dev/${VG}/${VOLUME}"
 | 
						|
else
 | 
						|
  echo 'Background scrubbing failed! Reboot to fsck soon!'
 | 
						|
  tune2fs -C 16000 -T "19000101" "/dev/${VG}/${VOLUME}"
 | 
						|
  if test -n "$RPT-EMAIL"; then 
 | 
						|
    mail -s "E2fsck of /dev/${VG}/${VOLUME} failed!" $EMAIL < $TMPFILE
 | 
						|
  fi
 | 
						|
fi
 | 
						|
lvremove -f "${VG}/${VOLUME}-snap"
 | 
						|
rm $TMPFILE
 | 
						|
 |