Python3打开新shell并进行多次交互

这时候有人要说了,执行shell用os.system()就行了嘛

需要返回值用subprocess.Popen().communicate()嘛

但是如果需要多次交互,就需要使用下面这种方法

import subprocess
import os
ssh = subprocess.Popen('ssh [email protected]', shell=True, stdout=subprocess.PIPE, stdin=subprocess.PIPE,stderr=subprocess.PIPE, universal_newlines=True)
os.read(ssh.stdout.fileno(), 10240)
ssh.stdin.write('ls\n')
ssh.stdin.flush()
print(os.read(ssh.stdout.fileno(), 10240))
ssh.stdin.write('pwd\n')
ssh.stdin.flush()
print(os.read(ssh.stdout.fileno(), 10240))
ssh.stdin.write('whoami\n')
ssh.stdin.flush()
print(os.read(ssh.stdout.fileno(), 10240))
ssh.stdin.write('exit\n')
ssh.stdin.flush()

配置Openwrt的ipv6

照图设置,需要使用Openwrt拨号,光猫改桥接的同时要开启ipv4+ipv6模式才能获取到v6地址
更新:如果是一级路由,将路由器通告和dhcpv6设置为服务器模式(混合包含了中继和服务器模式,实际工作的是服务器模式)如果是二级路由开dhcp则需要选择中继模式

群晖Btrfs修复

因为nas电源可能不太够,在插入硬盘的时候导致正在读写的主硬盘掉盘了,重启后群辉报错,存储空间只读,ssh上去重新挂载了下是可以挂读写的,因为不可能吧数据全部拷贝出来格式化,因为网上几乎0资料,摸索到凌晨3点,下面记录一下修复操作 ssh上去,换成root权限来执行 sudo su 检查一下错误日志 dmesg | grep BTRFS 发现有以下错误 btrfs error (device dm-2): qgroup generation mismatch, marked as inconsistent 卸载分区 df -h umount -fl /dev/mapper/cachedev_2 进行分区修复,需要一会 btrfs check --repair /dev/mapper/cache …