setmysqlpass: be more careful before plundering into action
Since this script is rooting the database, it'd be good to use a little more precaution so that we don't let systems be in an inconsistent case when crashing. In cases where the PATH variable is not appropriately set (variable is empty by default when script is invoked by puppet) the script shuts down mysql and then is not able to call most commands.
This commit is contained in:
parent
82cf365b2c
commit
3c93ba2339
2 changed files with 41 additions and 0 deletions
|
@ -2,6 +2,26 @@
|
|||
|
||||
test -f /root/.my.cnf || exit 1
|
||||
|
||||
must_have ()
|
||||
{
|
||||
# Here, using "which" would not be appropriate since it also depends on
|
||||
# PATH being set correctly. The type builtin command is unaffected by the
|
||||
# environment.
|
||||
type $1 >/dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Command '$1' not found, did you correctly set PATH ? Its current value is: $PATH" >&2
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
# Since this script is doing something rather unsafe with the database, we want
|
||||
# to be really careful to have all the necessary tools before doing anything so
|
||||
# that we don't end up in an inconsistent state.
|
||||
must_have sleep
|
||||
must_have mysql
|
||||
must_have killall
|
||||
must_have chown
|
||||
|
||||
rootpw=$(grep password /root/.my.cnf | sed -e 's/^[^=]*= *\(.*\) */\1/')
|
||||
|
||||
/sbin/service mysqld stop
|
||||
|
|
|
@ -2,6 +2,27 @@
|
|||
|
||||
test -f /root/.my.cnf || exit 1
|
||||
|
||||
must_have ()
|
||||
{
|
||||
# Here, using "which" would not be appropriate since it also depends on
|
||||
# PATH being set correctly. The type builtin command is unaffected by the
|
||||
# environment.
|
||||
type $1 >/dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Command '$1' not found, did you correctly set PATH ? Its current value is: $PATH" >&2
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
# Since this script is doing something rather unsafe with the database, we want
|
||||
# to be really careful to have all the necessary tools before doing anything so
|
||||
# that we don't end up in an inconsistent state.
|
||||
must_have sleep
|
||||
must_have mysql
|
||||
must_have killall
|
||||
must_have ls
|
||||
must_have chown
|
||||
|
||||
rootpw=$(grep password /root/.my.cnf | sed -e 's/^[^=]*= *\(.*\) */\1/')
|
||||
|
||||
/etc/init.d/mysql stop
|
||||
|
|
Loading…
Reference in a new issue