如何使用 shell 脚本通过 SSH 删除远程计算机上的文件?

如何使用 shell 脚本通过 SSH 删除远程计算机上的文件?

我正在编写一个 shell 脚本,我必须通过 shell 脚本删除远程计算机上的文件。

手动工作流程:

  1. 登录到远程机器:
    ssh [email protected]
    
  2. 在远程计算机 ( domain) 上,键入以下命令
    cd ./some/where
    rm some_file.war
    

我应该如何在脚本中完成该任务?

答案1

您可以通过将命令附加到 SSH 命令来向 SSH 客户端传递要执行的命令,以代替启动 shell。

ssh [email protected] 'rm /some/where/some_file.war'

cd只要指定完整路径,您就不必到某个位置来删除某些内容,因此这是您可以跳过的另一个步骤。

下一个问题是身份验证。如果您只是运行它,系统会提示您输入密码。如果您不想以交互方式输入此内容,则应该设置公钥身份验证。

答案2

如果你想使用 sudo 删除远程文件,你需要执行如下命令:

ssh -tt user@host 'stty raw -echo; sudo rm /path/to/file' < <(cat)

细节

答案3

ssh 命令有一个命令参数(命令中的最后一个参数),可用于运行远程命令。

答案4

设置无密码密钥,然后添加该命令作为 ssh 命令的一部分。看:http://www.dotkam.com/2009/03/10/run-commands-remotely-via-ssh-with-no-password/

相关内容