如何通过SSH将远程Linux主机的系统信息写入远程文件?
解决SSH远程执行命令并将结果写入远程文件的问题
你的问题出在重定向操作的执行位置——之前命令里的> result.txt是由本地Shell处理的,所以结果会写到本地文件。要让输出写入远程主机,只需把重定向逻辑放到SSH远程执行的命令范围内。
正确命令示例
覆盖写入远程文件
ssh username@remoteip "cat /etc/os-release; hostname > /home/username/remote_result.txt"
如果要让两个命令的输出都写入文件,建议用括号包裹确保统一重定向:
ssh username@remoteip "({ cat /etc/os-release; hostname; }) > /home/username/remote_result.txt"
追加写入远程文件
如果不想覆盖已有文件内容,用>>代替>:
ssh username@remoteip "({ cat /etc/os-release; hostname; }) >> /home/username/remote_result.txt"
关键说明
- 所有涉及文件写入的操作(包括重定向符号和目标文件路径)必须包含在SSH命令的引号内部,这样才会由远程主机的Shell执行。
- 注意远程文件路径的权限:确保你登录的远程用户对目标路径有写入权限,否则会报错权限不足。
内容的提问来源于stack exchange,提问作者asayke
相关产品推荐
相关产品推荐

