shell脚本定时操作数据库

一.数据库脚本(mysql.sh)

  • Linux环境下,定时将数据库A的表格复制到数据库B中
#!/bin/bash
mysql_host="127.0.0.1"
mysql_user="root"
mysql_passwd="123456"
dbold="nagios"
dbnew="nagios_summary"
#dbnew="test"
tablename="nagios_servicestatus"
#sql备份目录
root_dir="/home"
back_dir="/home/databases"
if [ ! -d $back_dir ]; then
 mkdir -p $back_dir
fi
#Now=$(date +”%d-%m-%Y--%H:%M:%S”)
#Now=$(date+%Y%m%d_%H:%M:%S)
Now=$(date +%Y-%m-%d--%H:%M:%S)
newtablename=$tablename-$Now".sql"
newname=$tablename$(date +%Y%m%d_%H_%M_%S)
cd $back_dir
mysqldump -u$mysql_user -p$mysql_passwd -h$mysql_host $dbold $tablename>$newtablename
#mysql -h$mysql_host -u$mysql_user -p$mysql_passwd $dbnew< $back_dir/$newtablenamei
create_sql=" source ${back_dir}/${newtablename}"
create_table="rename table ${tablename} to ${newname}"
mysql -h$mysql_host -u$mysql_user -p$mysql_passwd $dbnew -e "${create_sql}"
mysql -h$mysql_host -u$mysql_user -p$mysql_passwd $dbnew -e "${create_table}"
if [ $? = 0 ]; then
 rm -r ${back_dir}/${newtablename}
fi

二.脚本的定时执行

  • 安装crontab
yum install vixie-cron
yum install crontabs
service crond start //启动服务

查看crontab服务是否已设置为开机启动,执行命令:ntsysv
加入开机自动启动:

 chkconfig --level 35 crond on
  • 每隔1小时执行脚本
 crontab -e
01 */1 * * * /home/mysql.sh

三.导出某些数据表系统命令行mysqldump -uusername -ppassword db1 table1 table2 > tb1tb2.sql7 导入

导出某些数据表

  • 系统命令行
 mysqldump -uusername -ppassword db1 table1 table2 > tb1tb2.sql

导入某些数据表

  • 系统命令行
 mysql -uusername -ppassword db1 < tb1tb2.sql
 或mysql命令行
 mysql>
 user db1;
 source tb1tb2.sql;
  • 数据库信息
#!/bin/bash
HOSTNAME="127.0.0.1"                   #数据库Server信息
PORT="3306"
USERNAME="root"
PASSWORD="123456"
DBNAME1="nagios"
DBNAME2="nagios"
TABLENAME="test_table_name"           #要创建的数据库的表的名称
posted @ 2015-08-07 13:06  lily园  Views(1172)  Comments(0Edit  收藏  举报