您好我正在尝试在远程计算机上执行以下命令如何执行此操作
ssh login.com find /nfs/repo/ -name ".user_repo.log" | \
xargs cat | awk '{$NF=""; print $0}' | \
sed "1i Owner RepoName CreatedDate" | column -t
我收到以下错误消息
cat: /nfs/repo/new1/info/.user_repo.log: No such file or directory
cat: /nfs/repo/new2/info/.user_repo.log: No such file or directory
cat命令试图在远程计算机上存在这些文件的同时在本地系统上查找文件。我该怎样处理这个
答案 0 :(得分:4)
如果你这样做:
ssh host command1 | command2
然后shell将在管道处中断,因此您将获得“ssh host command1”作为一个命令运行(即远程),然后“command2”作为另一个命令运行(即,在本地。)您可以强制所有通过用引号括起来远程运行的命令:
ssh host "command1 | command2"
注意,由于您在命令中已经有引号,因此您可能必须通过转义获得创意。
或者,您可以将所有这些命令放在一个简短的shell脚本中,然后运行脚本:
ssh host myscript.sh