【发布时间】:2023-03-03 23:30:01
【问题描述】:
我想要一个命令:
- ssh 以用户 foo 的身份进入我的服务器,使用我设置的公钥
- 使用 /etc/mysql/debian.cnf 默认文件执行某个数据库的 mysqldump
- 到标准输出,所以我可以在本地管道它
- 远程在服务器上执行 sudo 时,因为不允许用户 foo 读取 /etc/mysql/debian.cnf。 foo 允许 sudo bash 但不允许 sudo mysqldump。
这是我想出的最好的:
echo 'mysqldump --defaults-file=/etc/mysql/debian.cnf dbname' | ssh -t -i keys/id_rsa -l foo example.com sudo bash -s
这个丑陋的野兽工作,但产生:Pseudo-terminal will not be allocated because stdin is not a terminal.,我真的不喜欢回声。一定有更好的办法吗?
【问题讨论】: