在一个 sh 脚本上备份多个表
backup multiple tables on one single sh script
我有一个脚本可以在一行中备份多个 tables,如下所示:
/usr/local/pgsql/bin/pg_dump --quote-all-identifiers --username=postgres -p 5432 -t schema.table1 -t schema.table2 -t schema.table3 -t schema.table4 -h localhost mydb | gzip -1 > file.dmp.gz
我创建了一个新的 sh 脚本,以便能够重新使用如下命令:
backup_table.sh
$TABLE=
$DESTINATION=
/usr/local/pgsql/bin/pg_dump --quote-all-identifiers --username=postgres -p 5432 -t $TABLE -h localhost mydb | gzip -1 > $DESTINATION
如您所见,这仅适用于 1 table,我不确定如何将多个 table 传递给 sh 脚本 (-t table1 - t table2 -t table3 等)
我可以使用数组,但仍然不确定如何编码。
谢谢!
如果您愿意让 DESTINATION
成为预期的第一个论点,那么这样的事情应该适合您:
DESTINATION=
TABLES=`echo ${@:2}|sed "s/\s/ -t /g"`
/usr/local/pgsql/bin/pg_dump --quote-all-identifiers --username=postgres -p 5432 -t $TABLES -h localhost mydb | gzip -1 > $DESTINATION
我有一个脚本可以在一行中备份多个 tables,如下所示:
/usr/local/pgsql/bin/pg_dump --quote-all-identifiers --username=postgres -p 5432 -t schema.table1 -t schema.table2 -t schema.table3 -t schema.table4 -h localhost mydb | gzip -1 > file.dmp.gz
我创建了一个新的 sh 脚本,以便能够重新使用如下命令:
backup_table.sh
$TABLE=
$DESTINATION=
/usr/local/pgsql/bin/pg_dump --quote-all-identifiers --username=postgres -p 5432 -t $TABLE -h localhost mydb | gzip -1 > $DESTINATION
如您所见,这仅适用于 1 table,我不确定如何将多个 table 传递给 sh 脚本 (-t table1 - t table2 -t table3 等)
我可以使用数组,但仍然不确定如何编码。
谢谢!
如果您愿意让 DESTINATION
成为预期的第一个论点,那么这样的事情应该适合您:
DESTINATION=
TABLES=`echo ${@:2}|sed "s/\s/ -t /g"`
/usr/local/pgsql/bin/pg_dump --quote-all-identifiers --username=postgres -p 5432 -t $TABLES -h localhost mydb | gzip -1 > $DESTINATION