提问人:skidamarink 提问时间:5/24/2023 最后编辑:skidamarink 更新时间:5/24/2023 访问量:19
如何使用 2 个文件 txt 的循环?
How can i use looping from 2 file txt?
问:
我有 2 个文件.txt,我想用于循环备份数据库。
文件 1 是数据库名称 = DB_NAME.txt
db_abc
db_def
文件 2 是表名 = TB_NAME.txt
tb_123
tb_456
tb_789
我想用它来
/usr/bin/mysqldump --compact --no-create-info -u<user> -p<pass> -h<ip> ${DB_NAME} ${TB_NAME} > /home/backup/backup_data/data_${DB_NAME}_${TB_NAME}_$(date "+%Y.%m.%d-%H.%M.%S").sql
我想要的是那个循环的脚本,像这样运行
/usr/bin/mysqldump --compact --no-create-info -u<user> -p<pass> -h<ip> **db_abc tb_123** > /home/backup/backup_data/data_**db_abc_tb_123**_$(date "+%Y.%m.%d-%H.%M.%S").sql
/usr/bin/mysqldump --compact --no-create-info -u<user> -p<pass> -h<ip> **db_abc tb_456** > /home/backup/backup_data/data_**db_abc_tb_456**_$(date "+%Y.%m.%d-%H.%M.%S").sql
/usr/bin/mysqldump --compact --no-create-info -u<user> -p<pass> -h<ip> **db_abc tb_123** > /home/backup/backup_data/data_**db_abc_tb_123**_$(date "+%Y.%m.%d-%H.%M.%S").sql
/usr/bin/mysqldump --compact --no-create-info -u<user> -p<pass> -h<ip> **db_def tb_123** > /home/backup/backup_data/data_**db_def_tb_123**_$(date "+%Y.%m.%d-%H.%M.%S").sql
/usr/bin/mysqldump --compact --no-create-info -u<user> -p<pass> -h<ip> **db_def tb_456** > /home/backup/backup_data/data_**db_def_tb_456**_$(date "+%Y.%m.%d-%H.%M.%S").sql
/usr/bin/mysqldump --compact --no-create-info -u<user> -p<pass> -h<ip> **db_def tb_123** > /home/backup/backup_data/data_**db_def_tb_123**_$(date "+%Y.%m.%d-%H.%M.%S").sql
我已经尝试过像这样使用数组,但我没有得到我想要的
#!/bin/bash
l_db="/home/scripts/backup/DB_NAME.txt";
l_tb="/home/scripts/backup/TB_NAME.txt";
declare -a database=(`cat ${l_db}`)
declare -a table=(`cat ${l_tb}`)
for DB in "${database[@]}"; do
/usr/bin/mysqldump --compact --no-create-info -u<user> -p<pass> -ip ${DB} ${table[$i]} > /home/backup/backup_data/data_${DB}_${table[$i]}_$(date "+%Y.%m.%d-%H.%M.%S").sql
done
我希望有人知道如何解决我的问题,并想分享他/她的知识。请
答: 暂无答案
评论
for TB in "${table[@]}" ; do
/usr/bin/mysqldump
$DB
$TB
$i