From 9ec0ef766c210ac6ca26a725701a89031a56fbab Mon Sep 17 00:00:00 2001 From: Jerome Charaoui Date: Thu, 10 Dec 2009 14:52:50 -0500 Subject: make backup and optimize cron jobs optional; introduce $mysql_backup_cron, $mysql_backup_dir and$mysql_optimize_cron; use a module_dir for scripts --- files/backup/mysql_backup.cron | 1 - files/config/CentOS/setmysqlpass.sh | 15 --------------- files/config/Debian/setmysqlpass.sh | 17 ----------------- files/optimize/optimize_tables.rb | 12 ------------ files/scripts/CentOS/setmysqlpass.sh | 15 +++++++++++++++ files/scripts/Debian/setmysqlpass.sh | 17 +++++++++++++++++ files/scripts/optimize_tables.rb | 12 ++++++++++++ 7 files changed, 44 insertions(+), 45 deletions(-) delete mode 100644 files/backup/mysql_backup.cron delete mode 100644 files/config/CentOS/setmysqlpass.sh delete mode 100644 files/config/Debian/setmysqlpass.sh delete mode 100644 files/optimize/optimize_tables.rb create mode 100644 files/scripts/CentOS/setmysqlpass.sh create mode 100644 files/scripts/Debian/setmysqlpass.sh create mode 100644 files/scripts/optimize_tables.rb (limited to 'files') diff --git a/files/backup/mysql_backup.cron b/files/backup/mysql_backup.cron deleted file mode 100644 index 1cb21ff..0000000 --- a/files/backup/mysql_backup.cron +++ /dev/null @@ -1 +0,0 @@ -00 01 * * * root /usr/bin/mysqldump --default-character-set=utf8 --all-databases --all --flush-logs --lock-tables --single-transaction | gzip > /var/lib/mysql/data/mysqldump.sql.gz && chmod 600 /var/lib/mysql/data/mysqldump.sql.gz diff --git a/files/config/CentOS/setmysqlpass.sh b/files/config/CentOS/setmysqlpass.sh deleted file mode 100644 index d762a20..0000000 --- a/files/config/CentOS/setmysqlpass.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/sh - -test $# -gt 0 || exit 1 - -/sbin/service mysqld stop - -/usr/libexec/mysqld --skip-grant-tables --user=root --datadir=/var/lib/mysql/data --log-bin=/var/lib/mysql/mysql-bin & -sleep 5 -echo "USE mysql; UPDATE user SET Password=PASSWORD('$1') WHERE User='root' AND Host='localhost';" | mysql -u root -killall mysqld -# chown to be on the safe side -chown mysql.mysql /var/lib/mysql/mysql-bin.* - -/sbin/service mysqld start - diff --git a/files/config/Debian/setmysqlpass.sh b/files/config/Debian/setmysqlpass.sh deleted file mode 100644 index 5bd63e2..0000000 --- a/files/config/Debian/setmysqlpass.sh +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/sh - -test $# -gt 0 || exit 1 - -/etc/init.d/mysql stop - -/usr/sbin/mysqld --skip-grant-tables --user=root --datadir=/var/lib/mysql --log-bin=/var/lib/mysql/mysql-bin & -sleep 5 -echo "USE mysql; UPDATE user SET Password=PASSWORD('$1') WHERE User='root' AND Host='localhost';" | mysql -u root -killall mysqld -sleep 5 -# chown to be on the safe side -ls -al /var/lib/mysql/mysql-bin.* &> /dev/null -[ $? == 0 ] && chown mysql.mysql /var/lib/mysql/mysql-bin.* - -/etc/init.d/mysql start - diff --git a/files/optimize/optimize_tables.rb b/files/optimize/optimize_tables.rb deleted file mode 100644 index 52e726e..0000000 --- a/files/optimize/optimize_tables.rb +++ /dev/null @@ -1,12 +0,0 @@ -#!/usr/bin/env ruby - -# set home as we runit as weekly cron, where HOME is / -ENV['HOME'] = '/root' -tables = %x{mysql -Bse "SELECT TABLE_SCHEMA,TABLE_NAME FROM information_schema.TABLES WHERE TABLE_SCHEMA NOT IN ('information_schema','mysql') AND Data_free > 0 AND ENGINE IN ('MyISAM','InnoDB','ARCHIVE')"} -tables.each { |table| - tableitems = table.chomp.split(/\t/) - system "mysql #{tableitems[0]} -Bse \"OPTIMIZE TABLE #{tableitems[1]}\" | grep -q OK" - if $?.to_i > 0 then - puts "error while optimizing #{tableitems[0]}. #{tableitems[1]}" - end -} diff --git a/files/scripts/CentOS/setmysqlpass.sh b/files/scripts/CentOS/setmysqlpass.sh new file mode 100644 index 0000000..d762a20 --- /dev/null +++ b/files/scripts/CentOS/setmysqlpass.sh @@ -0,0 +1,15 @@ +#!/bin/sh + +test $# -gt 0 || exit 1 + +/sbin/service mysqld stop + +/usr/libexec/mysqld --skip-grant-tables --user=root --datadir=/var/lib/mysql/data --log-bin=/var/lib/mysql/mysql-bin & +sleep 5 +echo "USE mysql; UPDATE user SET Password=PASSWORD('$1') WHERE User='root' AND Host='localhost';" | mysql -u root +killall mysqld +# chown to be on the safe side +chown mysql.mysql /var/lib/mysql/mysql-bin.* + +/sbin/service mysqld start + diff --git a/files/scripts/Debian/setmysqlpass.sh b/files/scripts/Debian/setmysqlpass.sh new file mode 100644 index 0000000..5bd63e2 --- /dev/null +++ b/files/scripts/Debian/setmysqlpass.sh @@ -0,0 +1,17 @@ +#!/bin/sh + +test $# -gt 0 || exit 1 + +/etc/init.d/mysql stop + +/usr/sbin/mysqld --skip-grant-tables --user=root --datadir=/var/lib/mysql --log-bin=/var/lib/mysql/mysql-bin & +sleep 5 +echo "USE mysql; UPDATE user SET Password=PASSWORD('$1') WHERE User='root' AND Host='localhost';" | mysql -u root +killall mysqld +sleep 5 +# chown to be on the safe side +ls -al /var/lib/mysql/mysql-bin.* &> /dev/null +[ $? == 0 ] && chown mysql.mysql /var/lib/mysql/mysql-bin.* + +/etc/init.d/mysql start + diff --git a/files/scripts/optimize_tables.rb b/files/scripts/optimize_tables.rb new file mode 100644 index 0000000..52e726e --- /dev/null +++ b/files/scripts/optimize_tables.rb @@ -0,0 +1,12 @@ +#!/usr/bin/env ruby + +# set home as we runit as weekly cron, where HOME is / +ENV['HOME'] = '/root' +tables = %x{mysql -Bse "SELECT TABLE_SCHEMA,TABLE_NAME FROM information_schema.TABLES WHERE TABLE_SCHEMA NOT IN ('information_schema','mysql') AND Data_free > 0 AND ENGINE IN ('MyISAM','InnoDB','ARCHIVE')"} +tables.each { |table| + tableitems = table.chomp.split(/\t/) + system "mysql #{tableitems[0]} -Bse \"OPTIMIZE TABLE #{tableitems[1]}\" | grep -q OK" + if $?.to_i > 0 then + puts "error while optimizing #{tableitems[0]}. #{tableitems[1]}" + end +} -- cgit v1.2.3