通过ssh输入账户密码,远程登陆一台没有PYthon的服务器上,用subprocess执行指定文件夹/home/command/的ASK命令,然后把输出内容保存到CSV。请问怎么写这个脚本
时间: 2023-04-07 09:03:03 浏览: 193
你可以使用以下脚本来实现这个任务:
```
import subprocess
# 输入服务器IP地址和账户名
server_ip = input("请输入服务器IP地址:")
username = input("请输入账户名:")
# 远程登陆服务器
ssh = subprocess.Popen(["ssh", f"{username}@{server_ip}"], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True)
# 输入密码
password = input("请输入密码:")
ssh.stdin.write(f"{password}\n")
ssh.stdin.flush()
# 执行ASK命令并保存输出到CSV文件
command = "ASK"
output_file = "/home/command/output.csv"
ssh.stdin.write(f"cd /home/command && {command} > {output_file}\n")
ssh.stdin.flush()
# 等待命令执行完成
output, error = ssh.communicate()
print(output)
print(error)
```
请注意,这个脚本只是一个示例,你需要根据实际情况修改服务器IP地址、账户名、密码、ASK命令和输出文件路径。
相关问题
通过ssh输入账户密码,通过主机名远程登陆一台没有PYthon的服务器上。用subprocess执行指定文件夹/home/command/的ASK命令,然后把输出内容保存到CSV。请问怎么写这个脚本
可以使用以下脚本实现:
```
import subprocess
# 输入远程服务器的IP地址或主机名
remote_host = input("请输入远程服务器的IP地址或主机名:")
# 输入远程服务器的用户名和密码
remote_user = input("请输入远程服务器的用户名:")
remote_password = input("请输入远程服务器的密码:")
# 使用ssh连接远程服务器
ssh = subprocess.Popen(["sshpass", "-p", remote_password, "ssh", remote_user + "@" + remote_host],
stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
# 执行ASK命令并将输出保存到CSV文件
command = "ASK > /home/command/output.csv"
ssh.stdin.write(command.encode())
output, error = ssh.communicate()
# 输出执行结果
if error:
print("执行命令出错:", error.decode())
else:
print("执行命令成功,输出内容为:", output.decode())
```
需要注意的是,这个脚本需要安装sshpass和openssh-client两个软件包。如果你的系统没有安装这两个软件包,可以使用以下命令进行安装:
```
sudo apt-get install sshpass openssh-client
```
远程登陆一台没有PYthon的服务器上,用subprocess执行指定文件夹/home/command/的ASK命令,请问怎么写这个脚本?
可以使用以下脚本:
```
import subprocess
ssh = subprocess.Popen(["ssh", "username@servername", "cd /home/command/ && ASK"],
shell=False,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
result = ssh.stdout.readlines()
if result == []:
error = ssh.stderr.readlines()
print("ERROR: %s" % error)
else:
print(result)
```
其中,username是服务器的用户名,servername是服务器的IP地址或域名,cd /home/command/ && ASK是要执行的命令。这个脚本会通过SSH连接到服务器,进入指定文件夹并执行指定命令,然后输出执行结果。
阅读全文