小编hus*_*var的帖子

期望 - 中断程序 - Ctrl + C.

我正在运行以下脚本以在远程服务器上启动捕获并随后下载该文件.目前我必须用Ctrl+ 暂停它C并手动退出.

如何替换交互并定义触发器以终止tcpdump或捕获Ctrl+ C并将其传递到远程服务器中?

spawn ssh "$user_ssh\@$ssh_server"

expect {
        "*password"     { send "$pass\n";   exp_continue}
        "root\@*"       { }
        timeout  { puts "time out expecting password or bash"; exit 1 }
    }

send "sudo tcpdump -i $intf -s0 -w $file -v\n";
interact

spawn scp "$user_ssh\@$ssh_server:$file" .

expect "password:"
send "$pass_ssh\n";
expect "100\%"
Run Code Online (Sandbox Code Playgroud)

linux ssh scripting tcl expect

6
推荐指数
1
解决办法
1万
查看次数

Python Set Intersection - 返回哪些对象

我有一个问题在python文档中并不是很清楚(https://docs.python.org/2/library/stdtypes.html#set.intersection).

使用set.intersection时,结果集包含当前集或其他对象?如果两个对象具有相同的值但在内存中是不同的对象.

我使用它来比较先前从文件中提取的提取与来自互联网的新提取.两者都有一些类似的对象,但我想更新旧的.或者可能有一个更简单的替代方案来实现这一目标?如果实现集合,我会容易得多__getitem__.

    oldApsExtract = set()
    if (os.path.isfile("Apartments.json")):
        with open('Apartments.json', mode='r') as f:
            oldApsExtract = set(jsonpickle.decode(f.read()))
    newApsExtract = set(getNewExtract())

    updatedAps = oldApsExtract.intersection(newApsExtract)
    deletedAps = oldApsExtract.difference(newApsExtract)
    newAps = newApsExtract.difference(oldApsExtract)

    for ap in deletedAps:
        ap.mark_deleted()

    for ap in updatedAps:
        ap.update()

    saveAps = list(oldApsExtract) + list(newAps)
    with open('Apartments.json', mode='w') as f:
        f.write(jsonpickle.encode(saveAps))
Run Code Online (Sandbox Code Playgroud)

python set

5
推荐指数
2
解决办法
159
查看次数

标签 统计

expect ×1

linux ×1

python ×1

scripting ×1

set ×1

ssh ×1

tcl ×1