定时执行指定mysql库备份及过期删除
/data/backup/dt_mysql_backup.sh
backup_dir=’/data/backup/mysql/’$1’/’
if [ ! -d “$backup_dir” ]; then
mkdir $backup_dir
fi
current_time=$(date +’%Y-%m-%d_%H%M%S’)
filepath=$backup_dir$current_time’.sql.gz’
echo ‘开始导出数据库…’
mysqldump –defaults-extra-file=/data/backup/my_mysql.cnf $1 | gzip > $filepath
echo ‘导出成功,文件名为: ‘$filepath
/data/backup/dt_remove_backup.sh
删除30天前的备份
find /data/backup/mysql/$1 -type f -mtime +30 | xargs rm -f
/data/backup/my_mysql.cnf
[mysqldump]
max_allowed_packet = 400M
host=127.0.0.1
user=root
password=’zhe shi mysql mi ma’
[mysql]
host=127.0.0.1
user=root
password=’zhe shi mysql mi ma’
编辑定时任务 crontab -e
,每天晚上2点执行(demo为需要操作的数据库名)
0 2 * * * /data/backup/dt_remove_backup.sh demo
0 2 * * * /data/backup/dt_mysql_backup.sh demo
shell脚本之mysql操作数据库
echo create database IF NOT EXISTS $2|mysql --defaults-extra-file=./my_mysql.cnf;
mysqldump --defaults-extra-file=./my_mysql.cnf $1 | mysql --defaults-extra-file=./my_mysql.cnf $2
执行命令:将 pdvm_prd_prepare 复制到 pdvm_prd_shuheng 这个库
./db_copy.sh pdvm_prd_prepare pdvm_prd_shuheng
数据库操作
!/bin/bash
#user=”root” #用变量来存储用户
DB=”classds” #数据库为classds
TB=”student” #需要建立的表是student
mysql -u$user <<EOF #前面实现了免密码登录,这里就不需要写密码了
drop database $DB; #如果数据库存在,先删除,方便脚本重复执行
create database $DB; #建立数据库
use $DB; #进入到数据库
create table $TB ( #建立表格
sid int(11) not null auto_increment primary key,
sname varchar(20) not null,
sage int(11) not null,
ssex tinyint(2) not null,
saddress varchar(20) not null,
year smallint(20) not null
)engine =Innodb default charset=utf8;
前面数据库名和表名都是变量,以后我要建其他表的话,就可以直接用这个模板,然后稍微修改一下我需要的字段就可以。
下面的是插入操作,个人其实比较建议,把插入操作和建表操作分开,写进两个脚本,这样实用性就更大了
insert into $DB.$TB(sname,sage,ssex,saddress,year) values(“a”,18,0,”湖南”,now());
insert into $DB.$TB(sname,sage,ssex,saddress,year) values(“b”,27,1,”广东”,now());
insert into $DB.$TB(sname,sage,ssex,saddress,year) values(“c”,23,0,”湖南”,now());
EOF
————————————————
版权声明:本文为CSDN博主「ssiyla」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/ssiyla/article/details/82716109