我有4个目录:
/home/user/test1
/home/user/test2
/home/user/test3
/home/user/test4
Run Code Online (Sandbox Code Playgroud)
我有另一个测试目录
/home/user/testing
Run Code Online (Sandbox Code Playgroud)
有文件testall.py
我怎么能将PATT附加到test,test1到test4到PYTHONPATH,以便我可以访问test1到4下的文件.
顺便说一句,test1到4有python文件所在的多个目录.
我试过了:
import sys
import os
PROJECT_ROOT = os.path.dirname(__file__)
sys.path.insert(0,os.path.join(PROJECT_ROOT,"test1"))
sys.path.insert(1,os.path.join(PROJECT_ROOT,"test2"))
sys.path.insert(2,os.path.join(PROJECT_ROOT,"test3"))
sys.path.insert(3,os.path.join(PROJECT_ROOT,"test4"))
Run Code Online (Sandbox Code Playgroud)
似乎没有用
也:
import sys
sys.path.append('/home/user/test1','/home/user/test2','/home/user/test3','/home/kahmed/test4')
from test1.common.api import GenericAPI
Run Code Online (Sandbox Code Playgroud)
不工作.
基本上:从test1.common.api导入GenericAPI应该工作
目前我这样运行prove:
prove -v -r .
Run Code Online (Sandbox Code Playgroud)
有没有办法使用正则表达式排除文件?我无法看到它perldoc prove或输出prove -H.
我有以下脚本:
#!/usr/bin/env ruby
require 'rubygems'
require 'net/ssh'
Net::SSH.start('host1', 'root', :password => "mypassword1") do |ssh|
stdout = ""
ssh.exec("cd /var/example/engines/")
ssh.exec!( "pwd" ) do |channel, stream, data|
stdout << data if stream == :stdout
end
puts stdout
ssh.loop
end
Run Code Online (Sandbox Code Playgroud)
我得到了/root,而不是 /var/example/engines/
我有一个循环,我在远程机器上执行一系列命令:
ssh.exec('cd /vmfs/volumes/4c6d95d2-b1923d5d-4dd7-f4ce46baaadc/ghettoVCB; ./ghettoVCB.sh -f vms_to_backup -d dryrun') do|ch, stream, data|
if #{stream} =~ /vmupgrade/
puts value_hosts + " is " + data
puts #{stream}
puts data
end
end
Run Code Online (Sandbox Code Playgroud)
我想访问#{stream}和do-end循环之外的数据
我将不胜感激任何帮助.谢谢,
嗨Jörg,
我实施了你的建议,但现在我收到了错误:
WrapperghettoVCB.rb:49: odd number list for Hash
communicator = {ch: ch, stream: stream, data: data}
^
WrapperghettoVCB.rb:49: syntax error, unexpected ':', expecting '}'
communicator = {ch: ch, stream: stream, data: data}
^
WrapperghettoVCB.rb:49: syntax error, unexpected ':', expecting '='
communicator = {ch: ch, stream: stream, data: data}
^ …Run Code Online (Sandbox Code Playgroud) 我试图通过ssh在php脚本中执行远程命令,我希望将命令(stdout和stderr)的输出流式传输到原始主机.
我知道在Perl和Ruby中这是可能的.我在php中找不到任何这样的例子.
码:
$ip = 'kssotest.yakabod.net';
$user = 'tester';
$pass = 'kmoon77';
$connection = ssh2_connect($ip);
ssh2_auth_password($connection,$user,$pass);
$shell = ssh2_shell($connection,"bash");
$cmd = "echo '[start]';your commands here;echo '[end]'";
$output = user_exec($shell,$cmd);
fclose($shell);
function user_exec($shell,$cmd) {
fwrite($shell,$cmd . "\n");
$output = "";
$start = false;
$start_time = time();
$max_time = 2; //time in seconds
while(((time()-$start_time) < $max_time)) {
$line = fgets($shell);
if(!strstr($line,$cmd)) {
if(preg_match('/\[start\]/',$line)) {
$start = true;
}elseif(preg_match('/\[end\]/',$line)) {
return $output;
}elseif($start){
$output[] = $line;
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
但是当我像这样执行它时$php remote.php …
我试过了:
def buildTestSuite():
suite = unittest.TestSuite()
for testcase in glob.glob('src/testsuite/test_*.py'):
module = os.path.splitext(testcase)[0]
print module
print type(module)
suite.addTest(__import__(module).buildTestSuite())
return suite
Run Code Online (Sandbox Code Playgroud)
但我感到很恐怖:
Traceback (most recent call last):
File "runtests.py", line 63, in ?
results = main()
File "runtests.py", line 57, in main
results = unittest.TextTestRunner().run(buildTestSuite())
File "runtests.py", line 53, in buildTestSuite
suite.addTest(__import__(module).buildTestSuite())
AttributeError: 'module' object has no attribute 'buildTestSuite'
Run Code Online (Sandbox Code Playgroud) 根据插件:
The following environment variables are used
ping_args - Arguments to ping (default "-c 2")
ping_args2 - Arguments after the host name (required for Solaris)
ping - Ping program to use
host - Host to ping
Configuration example
[multiping]
env.host www.example.org mail.example.org
Run Code Online (Sandbox Code Playgroud)
我在哪里指定[multiping]
使用案例:有一个Web服务发布为https:// abcd/zz?wsdl
我想要做的是查询这个URI,如果我得到一个VALID WSDL,我返回一个布尔"true"否则为"false".现在,如果我通过Chrome浏览器访问此URL,我将不得不手动接受关于cert警告,然后WSDL被下载.但是如何通过Java/HttpsURLConnection来做到这一点
import java.net.URL;
import java.io.*;
import javax.net.ssl.HttpsURLConnection;
public class JavaHttpsExample
{
public static void main(String[] args)
throws Exception
{
String httpsURL = "https://a.b.c.d/zz/V2.0/api?wsdl";
URL myurl = new URL(httpsURL);
HttpsURLConnection con = (HttpsURLConnection)myurl.openConnection();
InputStream ins = con.getInputStream();
InputStreamReader isr = new InputStreamReader(ins);
BufferedReader in = new BufferedReader(isr);
String inputLine;
while ((inputLine = in.readLine()) != null)
{
System.out.println(inputLine);
}
in.close();
}
}
Run Code Online (Sandbox Code Playgroud)
我收到一个错误:
线程"main"中的异常javax.net.ssl.SSLHandshakeException:java.security.cert.CertificateException:在com.sun.net.ssl.internal.ssl.Alerts.getSSLException中找不到与IP地址abcd匹配的主题备用名称(未知来源) )com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(未知来源)com.sun.net.ssl上的com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(未知来源).在com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(未知来源)的com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(未知来源)的internal.ssl.Handshaker.fatalSE(未知来源) )com.sun.net.ssl.internal.ssl.Handshaker.processLoop(未知来源),位于com.sun.net.ssl的com.sun.net.ssl.internal.ssl.Handshaker.process_record(未知来源). com.sun.net.ssl.internal.ssl.S.SLSLS.Ip.startHandshake(未知来源)com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(未知来源)的internal.ssl.SSLSocketImpl.readRecord(未知来源) )在com.sun.net.ssl .internal.ssl.SSLSocketImpl.startHandshake(未知来源)at sun.net.www.protocol.https.HttpsClient.afterConnect(未知来源)at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(Unknown Source)at sun位于JavaHttpsExample.main(JavaHttpsExample.java:14)的sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(未知来源)的.net.www.protocol.http.HttpURLConnection.getInputStream(未知来源)引起:java. security.cert.CertificateException:在com.sun.net上的sun.security.util.HostnameChecker.match(未知来源)的sun.security.util.HostnameChecker.matchIP(未知来源)中找不到与IP地址abcd匹配的主题备用名称. com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(未知来源)中的ssl.internal.ssl.X509TrustManagerImpl.checkIdentity(未知来源)
我用abcd取代了真正的IP(当然)
使用gradle对SonarQube 5.3运行SonarScanner 1.2,我收到如下错误:
Class not found: javax.annotation.Nullable
Class not found: javax.annotation.CheckReturnValue
Class not found: javax.annotation.Nullable
Class not found: org.joda.convert.FromString
Class not found: org.joda.convert.ToString
Class not found: org.joda.convert.FromString
Class not found: org.joda.convert.ToString
Class not found: org.joda.convert.FromString
Class not found: org.joda.convert.ToString
Class not found: javax.annotation.Nullable
and:
Resource not found: a.b.c.d.ControllerTest
and the likes ( all Integration tests )
Run Code Online (Sandbox Code Playgroud)
我试过了 :
dependencies {
classpath 'org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:1.2'
classpath 'javax.annotation:javax.annotation-api:1.2' }
Run Code Online (Sandbox Code Playgroud)
但这似乎不起作用
-Dsonar.java.libraries =**/lib/*也不能用作gradle参数.
使用gradle 2.2.1,使用jdk 7,sonarscanner 1.2和SonarQube 5.3
这是build.gradle:
apply plugin: 'crypto'
buildDir='gradlebuild'
apply from: …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 boto3 创建一个 ec2 实例:
#!/usr/bin/env python
import boto3
import json
from collections import defaultdict
ec2 = boto3.resource('ec2', region_name='us-west-1')
print ("Creating instance...")
ec2info = defaultdict()
vpc = ec2.Vpc('vpc-22222222')
instance = ec2.create_instances(
VpcId='vpc-22222222'
ImageId='ami-aaaaaaa',
SubnetId='subnet-99999999',
KeyName='skahmed-gss',
SecurityGroupIds=["sg-5555555","sg-9999999"],
MinCount=1,
MaxCount=1,
InstanceType='t2.micro',
#BlockDeviceMappings=[{"DeviceName": "/dev/xvda","Ebs" : { "VolumeSize" : 350 }}]
BlockDeviceMappings=[
{
'DeviceName': '/dev/sda1',
'Ebs': {
'VolumeSize': 20,
'VolumeType': 'gp2'
}
}
]
)
print("Instance ID: " + instance[0].id)
ec2.create_tags(Resources = [instance[0].id], Tags = [{'Key': 'Name', 'Value': 'SWALK-CENTOS7'}, {'Key': 'Environment', 'Value': 'NON_PROD'},
{'Key': …Run Code Online (Sandbox Code Playgroud)