我想要一个命令:
- 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.
,而且我真的不喜欢回声。肯定有更好的办法?