#!/bin/bash ### Needs more checking? ### Needs to notify admin that it has run? ### Needs testing? How can create crached databases? ### User-definable Aliases DATABASE_DIR=/var/lib/mysql/mythconverg CHECK_COMMAND=$(myisamchk --update-state -s *.MYI) FIX_COMMAND=$(myisamchk -r) MYSQLD=/etc/init.d/mysql MYTHTV_BACKEND=/etc/init.d/mythtv-backed ### Functions function stop_services { $MYSQLD stop $MYTHTV_BACKEND stop } function start_services { $MYSQLD start $MYTHTV_BACKEND start } function grab_broken { BROKEN_DATABASES=$($CHECK_COMMAND | grep MYI | grep myisamchk | cut -d' ' -f4) } function fix_broken { while read LINE do $FIX_COMMAND "$LINE" done <<< "$BROKEN_DATABASES" } #### Main stop_services grab_broken fix_broken start_services