我正在重写我写入Python的Bash脚本.那个剧本的关键是
ssh -t first.com "ssh second.com very_remote_command"
Run Code Online (Sandbox Code Playgroud)
我在使用paramiko进行嵌套身份验证时遇到问题.我无法找到任何处理我的确切情况的例子,但我能够在远程主机上找到sudo的例子.
第一种方法写入stdin
ssh.connect('127.0.0.1', username='jesse', password='lol')
stdin, stdout, stderr = ssh.exec_command("sudo dmesg")
stdin.write('lol\n')
stdin.flush()
Run Code Online (Sandbox Code Playgroud)
第二个创建一个通道并使用类似socket的send和recv.
我能够让stdin.write与sudo一起工作,但它不能与远程主机上的ssh一起使用.
import paramiko
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('first.com', username='luser', password='secret')
stdin, stdout, stderr = ssh.exec_command('ssh luser@second.com')
stdin.write('secret')
stdin.flush()
print '---- out ----'
print stdout.readlines()
print '---- error ----'
print stderr.readlines()
ssh.close()
Run Code Online (Sandbox Code Playgroud)
... ...打印
---- out ----
[]
---- error ----
['Pseudo-terminal will not be allocated …Run Code Online (Sandbox Code Playgroud) 我的主机是ArchLinux,我在CentOS客户端运行Apache.我有共享文件夹中的vhost配置和所有站点代码.为了能够将vhost配置放在共享文件夹中,我将共享文件夹挂载为apache:apache.
shared /mnt/shared vboxsf defaults,uid=48,gid=48 0 0
Run Code Online (Sandbox Code Playgroud)
当我在主机中编辑文件时,Apache将始终开始发送带有尾随字符的旧版本文件.在vim中,它们显示为^ @,所以我猜它们是空字符.即使我编辑第一行,空字符的数量也与我所做的更改数量有关,最后显示空字符.如果我推测,它看起来像一个糟糕的差异.
如果我停止httpd,umount重新安装,并启动httpd该文件看起来很好.只是重新启动httpd没有帮助.
我该如何调试mount?什么都没有跳出来对我说/var/log.
我写了这个东西,我想在运行会话中创建一个新窗口时提供一个 Python virtualenv 激活脚本。
是否可以?default-command 选项与 shell 相关,而不是附加命令。
我正在遵循Datomic示例模式,并且有一个定义为的实体的ID
:db/id #db/id[:db.part/db]
Run Code Online (Sandbox Code Playgroud)
#db/id是什么意思?模式加载了read-string,所以我猜它是有效的Clojure语法.