您好我想自动创建Postgres转储并下载它的工作流程。我想从我的本地机器上做到这一点,到目前为止,我已经用两个单独的命令来解决这个问题:
sshpass -p "FuckinHardPass" ssh andi@1.2.3.4 "pg_dump -U andi andi_some_db -f /home/andi/PSQL_DUMPS/andi_some_db.sql"
sshpass -p "FuckinHardPass" scp -r andi@1.2.3.4:/home/andi/PSQL_DUMPS/andi_some_db.sql .
如何使用管道等在一个命令中加入它?
感谢James Hightower提示,使用你的答案我在一个命令中完成它:
sshpass -p "FuckinHardPass" ssh andi@1.2.3.4 "pg_dump -U andi andi_some_db" > andi_some_db.sql
答案 0 :(得分:3)
由于pg_dump默认为stdout作为它的输出文件,并且ssh在它自己的标准输出上显示命令的标准输出,你可以这样做:
ssh andi@1.2.3.4 'pg_dump -U andi andi_some_db' > andi_some_db.sql
将把本地磁盘上的命令输出保存为andi_some_db.sql
根据转储的大小和连接的速度,您可能会受益于预压缩输出:
ssh andi@1.2.3.4 'pg_dump -U andi andi_some_db | gzip' > andi_some_db.sql.gz
等等。