使用python执行以下adb shell命令并输出结果 udhcpc udhcpc -i eth1 ifconfig iperf3 -B 192.168.100.30 -c 192.168.102.105 ifconfig eth0 down time dd if=/dev/zero of=/data/test.data bs=128k count=1024 time dd if=/data/test.data of=/dev/null bs=128k count=1024 rm /data/test.data
时间: 2024-02-21 20:58:50 浏览: 148
您可以使用Python的subprocess模块来执行adb shell命令,并使用stdout来获取输出结果。以下是代码示例:
```python
import subprocess
# 定义adb shell命令
commands = [
'udhcpc',
'udhcpc -i eth1',
'ifconfig',
'iperf3 -B 192.168.100.30 -c 192.168.102.105',
'ifconfig eth0 down',
'time dd if=/dev/zero of=/data/test.data bs=128k count=1024',
'time dd if=/data/test.data of=/dev/null bs=128k count=1024',
'rm /data/test.data'
]
# 执行adb shell命令并输出结果
for command in commands:
output = subprocess.check_output(['adb', 'shell', command])
print(output.decode('utf-8'))
```
请注意,您需要在代码中设置adb的路径,或者将adb添加到系统路径中。
相关问题
使用python执行以下adb shell命令 udhcpc udhcpc -i eth1 iperf3 -B 192.168.100.30 -c 192.168.102.105 ifconfig eth0 down time dd if=/dev/zero of=/data/test.data bs=128k count=1024 time dd if=/data/test.data of=/dev/null bs=128k count=1024 rm /data/test.data
以下是执行以上命令的Python代码实现:
```python
import subprocess
# 执行udhcpc命令
subprocess.run(['adb', 'shell', 'udhcpc'])
# 执行udhcpc和iperf3命令
subprocess.run(['adb', 'shell', 'udhcpc', '-i', 'eth1'])
subprocess.run(['adb', 'shell', 'iperf3', '-B', '192.168.100.30', '-c', '192.168.102.105'])
# 执行ifconfig命令
subprocess.run(['adb', 'shell', 'ifconfig', 'eth0', 'down'])
# 执行time和dd命令
subprocess.run(['adb', 'shell', 'time', 'dd', 'if=/dev/zero', 'of=/data/test.data', 'bs=128k', 'count=1024'])
subprocess.run(['adb', 'shell', 'time', 'dd', 'if=/data/test.data', 'of=/dev/null', 'bs=128k', 'count=1024'])
# 执行rm命令
subprocess.run(['adb', 'shell', 'rm', '/data/test.data'])
```
需要注意的是,以上代码中的每个命令都是独立执行的,如果前一个命令执行失败,后面的命令可能会出现错误。如果你需要在多个命令之间建立依赖关系,可以使用Python的条件语句和异常处理机制来实现。
使用多线程执行这两个函数 def get_ip(): # 执行adb shell命令并输出结果 subprocess.check_output( ['adb', 'shell', 'udhcpc'] ) subprocess.check_output( ['adb', 'shell', 'udhcpc -i eth1'] ) conf = subprocess.check_output( ['adb', 'shell', 'ifconfig'] ).decode() # conf = str(ip).split(r'\r\r\n') # tmp = conf.replace( "\r\r\n", "\n" ) # print( tmp) ip = re.findall( r'addr:(.*?) Bcast', str( conf ) ) print(ip) for i in ip : speed = subprocess.check_output((['adb', 'shell', f'iperf3 -B {i} -c 192.168.102.105'])).decode() print(speed.replace("\r\r\n", "\n")) def get_ssh(): ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy) ssh.connect(hostname='192.168.102.105',port=22,username='root',password='xiayi123456',timeout=30) stdin,stdout,stderr = ssh.exec_command('iperf3 -s') print(stdout.read())
可以使用 Python 的 `threading` 模块来实现多线程执行这两个函数。具体代码如下:
```
import threading
import subprocess
import re
import paramiko
def get_ip():
subprocess.check_output(['adb', 'shell', 'udhcpc'])
subprocess.check_output(['adb', 'shell', 'udhcpc -i eth1'])
conf = subprocess.check_output(['adb', 'shell', 'ifconfig']).decode()
ip = re.findall(r'addr:(.*?) Bcast', str(conf))
print(ip)
for i in ip:
speed = subprocess.check_output((['adb', 'shell', f'iperf3 -B {i} -c 192.168.102.105'])).decode()
print(speed.replace("\r\r\n", "\n"))
def get_ssh():
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy)
ssh.connect(hostname='192.168.102.105', port=22, username='root', password='xiayi123456', timeout=30)
stdin, stdout, stderr = ssh.exec_command('iperf3 -s')
print(stdout.read())
if __name__ == '__main__':
# 创建两个线程
t1 = threading.Thread(target=get_ip)
t2 = threading.Thread(target=get_ssh)
# 启动线程
t1.start()
t2.start()
# 等待线程执行完毕
t1.join()
t2.join()
```
在主函数中,首先创建了两个线程 `t1` 和 `t2`,分别执行 `get_ip` 和 `get_ssh` 函数。然后通过调用 `start()` 方法启动线程,最后通过调用 `join()` 方法等待线程执行完毕。这样就可以实现多线程执行两个函数。
阅读全文