diff options
Diffstat (limited to 'tools/cluster-clean.in')
-rwxr-xr-x | tools/cluster-clean.in | 99 |
1 files changed, 99 insertions, 0 deletions
diff --git a/tools/cluster-clean.in b/tools/cluster-clean.in new file mode 100755 index 0000000..4b75edf --- /dev/null +++ b/tools/cluster-clean.in @@ -0,0 +1,99 @@ +#!@BASH_PATH@ +# +# Copyright 2011-2023 the Pacemaker project contributors +# +# The version control history for this file may have further details. +# +# This source code is licensed under the GNU General Public License version 2 +# or later (GPLv2+) WITHOUT ANY WARRANTY. +# + +hosts= +group= +kill=0 +while true; do + case "$1" in + -x) set -x; shift;; + -w) for h in $2; do + hosts="$hosts -w $h"; + done + shift; shift;; + -g) group=$2; shift; shift;; + --kill) kill=1; shift;; + --kill-only) kill=2; shift;; + "") break;; + *) echo "unknown option: $1"; exit 1;; + esac +done + +if [ x"$group" = x -a x"$hosts" = x ]; then + group=$CTS_GROUP +fi + +if [ x"$hosts" != x ]; then + echo `date` ": Cleaning up hosts:" + target=$hosts +elif [ x"$group" != x ]; then + echo `date` ": Cleaning up group: $group" + target="-g $group" +else + echo "You didn't specify any nodes to clean up" + exit 1 +fi +cluster-helper --list bullet $target + +if [ $kill != 0 ]; then + echo "Cleaning processes" + + # Bah. Force systemd to actually look at the process and realize it's dead + cluster-helper $target -- "service corosync stop" &> /dev/null & + cluster-helper $target -- "service pacemaker stop" &> /dev/null & + + cluster-helper $target -- "killall -q -9 corosync pacemakerd pacemaker-attrd pacemaker-based pacemaker-controld pacemaker-execd pacemaker-fenced pacemaker-remoted pacemaker-schedulerd dlm_controld gfs_controld" &> /dev/null + cluster-helper $target -- 'kill -9 `pidof valgrind`' &> /dev/null + + if [ $kill == 2 ]; then + exit 0 + fi +fi + +#logrotate -f $cluster_rotate +echo "Cleaning files" + +log_files="" +log_files="$log_files 'messages*'" +log_files="$log_files 'localmessages*'" +log_files="$log_files 'cluster*.log'" +log_files="$log_files 'corosync.log*'" +log_files="$log_files 'pacemaker.log*'" +log_files="$log_files '*.journal'" +log_files="$log_files '*.journal~'" +log_files="$log_files 'secure-*'" + +state_files="" +state_files="$state_files 'cib.xml*'" +state_files="$state_files 'valgrind-*'" +state_files="$state_files 'cib-*'" +state_files="$state_files 'core.*'" +state_files="$state_files 'cts.*'" +state_files="$state_files 'pe*.bz2'" +state_files="$state_files 'fdata-*'" + +for f in $log_files; do + cluster-helper $target -- "find /var/log -name '$f' -exec rm -f \{\} \;" +done + +for f in $state_files; do + cluster-helper $target -- "find /var/lib -name '$f' -exec rm -f \{\} \;" +done + +cluster-helper $target -- "find /dev/shm -name 'qb-*' -exec rm -f \{\} \;" +cluster-helper $target -- "find @CRM_BLACKBOX_DIR@ -name '*-*' -exec rm -f \{\} \;" +cluster-helper $target -- "find /tmp -name '*.valgrind' -exec rm -f \{\} \;" + +cluster-helper $target -- 'service rsyslog restart' > /dev/null 2>&1 +cluster-helper $target -- 'systemctl restart systemd-journald.socket' > /dev/null 2>&1 +cluster-helper $target -- logger -i -p daemon.info __clean_logs__ + +#touch $cluster_log +echo `date` ": Clean complete" |