gpt4 book ai didi

linux - 如何在.sh文件中编写ssh连接代码以连接到远程计算机

转载 作者:太空宇宙 更新时间:2023-11-04 04:35:28 25 4
gpt4 key购买 nike

我已经写了一个脚本(test.sh文件)在系统A的docker中重置mysql和postgres db
因此,当我在系统A上运行test.sh文件时,它工作正常

现在我需要从另一个系统B运行相同的文件
为此,我必须首先通过在控制台中提供此命令来连接到系统A


导航到文件夹
输入系统ID test@192.111.1.111
输入密码
然后从系统B运行test.sh文件


如何在test.sh文件中添加以上所有3个步骤,这样我就不必在系统B上的控制台中输入上述3个步骤,这样我就可以在系统B上运行test.sh文件,它将完成所有工作连接tp系统A和重置数据库

echo  "Resetting postgres Database";
docker cp /home/test/Desktop/db_dump.sql db_1:/home
docker exec -it workflow bash -c "npm run schema:drop"
docker exec -it workflow bash -c "npm run cli schema:sync"
docker exec -it db_1 bash -c "PGPASSWORD=test psql -h db -U postgres -d test_db < /home/db_dump.sql"
echo "ProcessEngine Database Resetting";
docker cp /home/test/test/test/test.sql test:/home
docker exec -it test bash -c "mysql -uroot -ptest -e 'drop database test;'"
docker exec -it test bash -c "mysql -uroot -ptest -e 'create database test;'"
docker exec -it test bash -c "mysql -uroot -ptest -e 'use test; source /home/test.sql;'"


我想将ssh的连接代码添加到此代码中,以便可以从其他系统运行它


导航到文件夹
ssh test@192.111.1.111
密码


如何在我的代码中将其放在3个步骤之上

最佳答案

您可以使用cd导航到目录。
建议使用SSH key代替密码登录,如果确实不是这样,则可以查看sshpass
您可以使用;分隔多个命令,因此可以在一个docker exec命令中执行上述操作。

关于linux - 如何在.sh文件中编写ssh连接代码以连接到远程计算机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57736621/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com