我正在编写一个单行命令,将所有数据库备份到各自的名称中,而不是使用一个sql中的转储。
例如:db1保存到db1.sql,db2保存到db2.sql
到目前为止,我收集了以下命令来检索所有数据库。
MysqL -uuname -ppwd -e 'show databases' | grep -v 'Database'
我打算用awk来管理它
awk '{MysqLdump -uuname -ppwd $1 > $1.sql}'
但这不工作。
我是bash的新手,所以我的想法可能是错的。
我应该怎么做才能使其在各自的名称中导出db?
更新:
好的,必须终于设法从下面的提示中得到它的工作。
这是最后的脚本
# replace [] with your own config # replace own dir to save # echo doesn't work. hmm... MysqL -u[uname] -p'[pwd]' -e "show databases" \ | grep -Ev 'Database|information_schema' \ | while read dbname; \ do \ echo 'Dumping $dbname' \ MysqLdump -u[uanme] -p'[pwd]' $dbname > ~/db_backup/$dbname.sql;\ done
回音部分不行。
MysqL -uroot -e 'show databases' | while read dbname; do MysqLdump -uroot --complete-insert --some-other-options "$dbname" > "$dbname".sql; done
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。