mysql完整备份时过滤掉某些库暨xargs的用法

mysql完整备份时过滤掉某些库

mysql进行完整备份时使用==–all-database==参数
比如:

#mysqldump -u root -h localhost -p –all-database > /root/all.sql

数据导入的时候,可以先登陆mysql数据库中,使用source /root/all.sql进行导入。

问题:
想要在mysqldump备份数据库的时候,过滤掉某些库。
这种情况mysqldump备份的时候就不能使用–all-database了,而是使用–databases

如下:备份数据库的时候过滤掉information_schema、mysql 、test和jkhw_db

[root@fangfull-backup ~]# mysql -uroot -p -e "show databases"
Enter password:

+--------------------+
| Database |
+--------------------+
| information_schema |
| hqsb_db               |
| jkhw_db             |
| mysql                 |
| test                    |
| tech_db             |
| hqtime_o2o_db |
| hq_o2o_db        |
| hqtime_o2o_db_new |
+--------------------+
9 rows in set (0.00 sec)

操作方法:

[root@fangfull-backup ~]# mysql -uroot -p -e "show databases"|grep -Ev "Database|information_schema|mysql|test|jkhw_db"
Enter password: 
hqsb_db
tech_db 
hqtime_o2o_db 
hq_o2o_db 
hqtime_o2o_db_new 
[root@fangfull-backup ~]# mysql -uroot -p -e "show databases"|grep -Ev "Database|information_schema|mysql|test|jkhw_db"|xargs
Enter password: 
hqsb_db tech_db hqtime_o2o_db hq_o2o_db hqtime_o2o_db_new 
[root@fangfull-backup ~]# mysql -uroot -p -e "show databases"|grep -Ev "Database|information_schema|mysql|test|jkhw_db"|xargs mysqldump -uroot -p --databases > mysql_dump.sql
Enter password:

附 xargs 命令的用法

管道是实现“将前面的标准输出作为后面的标准输入
xargs是实现“将标准输入作为命令的参数

你可以试试运行:

代码:

echo "--help"|cat
echo "--help"|xargs cat

看看结果的不同。

试过了,依然不是很确定的明白到底是什么意思,自己再探索一下看看把

如果你直接在命令行输入cat而不输入其余的任何东西,这时候的cat会等待标准输入,因此你这时候可以

通过键盘输入并按回车来让cat读取输入,cat会原样返回。而如果你输入–help,那么cat程序会在标准输出上

打印自己的帮助文档。也就是说,管道符 | 所传递给程序的不是你简单地在程序名后面输入的参数,它们会被

程序内部的读取功能如scanf和gets等接收,而xargs则是将内容作为普通的参数传递给程序,相当于你手写了

cat –help

来自:http://forum.ubuntu.org.cn/viewtopic.php?t=354669

补充解释:

在一个目录中有如下三个文件

a.c b.c c.c

find . / -print命令会打印出三个文件名

find . / -print | grep a.c 只会打印出a.c这个文件

如果只输入命令grep a.c

那么你在键盘中只输入a.c字符串时,a.c会被打印两次,否则只打印你输入的字符

如果要找三个文件中,那个文件包括有hello字符

find ./ -print | xargs grep hello

总结:管道符后不加xargs相当于先将xargs后面的命令回车执行一下再从键盘里输入

管道符前面命令执行的结果内容

加上xargs 相当于直接从键盘输入管道符前面命令执行的结果内容再回车

再总结一下,就是回车的先后顺序不太一样。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值