远程登陆一台没有PYthon的服务器上,用subprocess执行指定文件夹/home/command/的ASK命令,然后把输出内容保存到CSV。请问怎么写这个脚本?
时间: 2023-04-07 07:02:57 浏览: 54
可以使用以下脚本实现:
```python
import subprocess
import csv
# 远程服务器的IP地址和用户名
ip = "xxx.xxx.xxx.xxx"
username = "username"
# 执行的命令
command = "ASK"
folder = "/home/command/"
# 登录远程服务器并执行命令
ssh = subprocess.Popen(["ssh", f"{username}@{ip}", f"cd {folder} && {command}"], stdout=subprocess.PIPE)
# 读取命令输出
output = ssh.stdout.readlines()
# 将输出保存到CSV文件
with open("output.csv", "w", newline="") as csvfile:
writer = csv.writer(csvfile)
for line in output:
writer.writerow([line.strip().decode("utf-8")])
```
需要注意的是,执行该脚本需要在本地安装SSH客户端,并且需要在远程服务器上安装ASK命令。
相关问题
通过ssh远程登陆一台没有PYthon的服务器上,用subprocess执行指定文件夹/home/command/的ASK命令,然后把输出内容保存到CSV。请问怎么写这个脚本?
可以使用以下脚本来实现:
```
import subprocess
import csv
# 远程服务器的IP地址和用户名
remote_server = 'remote_server_ip'
remote_user = 'remote_username'
# 远程服务器上ASK命令所在的文件夹路径
remote_folder = '/home/command/'
# 本地保存CSV文件的路径和文件名
csv_file = 'output.csv'
# 使用ssh连接远程服务器,并执行ASK命令
ssh = subprocess.Popen(['ssh', remote_user + '@' + remote_server, 'cd ' + remote_folder + ' && ASK'],
stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
# 读取ASK命令的输出内容
output, error = ssh.communicate()
# 将输出内容写入CSV文件
with open(csv_file, 'w', newline='') as f:
writer = csv.writer(f)
for line in output.decode().split('\n'):
writer.writerow([line])
```
需要注意的是,执行脚本时需要先安装好Python和paramiko库。
远程登陆一台没有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连接到服务器,进入指定文件夹并执行指定命令,然后输出执行结果。