我必须在远程机器上运行shell脚本(windows/Linux).
我在机器A和B上配置了SSH.我的脚本在机器A上,它将在远程机器上运行我的一些代码,机器B.
本地和远程计算机可以是基于Windows或Unix的系统.
有没有办法使用plink/ssh运行?
我正在尝试使用ssh连接到第一台机器,然后使用ssh连接到另一台机器.但得到这个错误:
ssh user@computerone.com 'ssh otheruser@computertwo.com'
stdin: is not a tty
Run Code Online (Sandbox Code Playgroud) 当我尝试使用ssh在远程服务器上执行命令时,ssh命令在exec request accepted调试消息之后挂起,并最终超时.
失败的命令:( ssh -v -v <username>@<server> uptime也试过echo hello等)
debug1: Authentication succeeded (publickey).
Authenticated to <server> (<ip>:22).
debug1: channel 0: new [client-session]
debug2: channel 0: send open
debug1: Requesting no-more-sessions@openssh.com
debug1: Entering interactive session.
debug2: callback start
debug2: client_session2_setup: id 0
debug2: fd 4 setting TCP_NODELAY
debug1: Sending environment.
debug1: Sending env LANG = en_US.UTF-8
debug2: channel 0: request env confirm 0
debug1: Sending command: uptime
debug2: channel 0: request exec confirm 1
debug2: …Run Code Online (Sandbox Code Playgroud) 我想允许提交小的用户定义的正则表达式进行测试.但是,从失控服务器使用到更恶习的eval()使用还有许多问题需要考虑.
据我所知,我已经处理了以下代码中我能想到的所有问题.他们没有想到的任何攻击媒介吗?(我知道一个相当天真的问题)
function testRegex($regex)
{
// null character allows a premature regex end and "/../e" injection
if (strpos($regex, 0) !== false || ! trim($regex)) {
return false;
}
$backtrack_limit = ini_set('pcre.backtrack_limit', 200);
$recursion_limit = ini_set('pcre.recursion_limit', 20);
$valid = @preg_match("~$regex~u", null) !== false;
ini_set('pcre.backtrack_limit', $backtrack_limit);
ini_set('pcre.recursion_limit', $recursion_limit);
return $valid;
}
$regexes = array(
"InvalidRegular)Expression",
'',
'\w+',
'\/\w+/',
'foo[bar]*',
'\/\x00known/e' . chr(0x00) . chr(0),
'known~e' . chr(0),
'known~e' . chr(0x00),
'[a-z]+',
'\p{Lu}+',
);
foreach($regexes as $regex) {
var_dump($regex, testRegex($regex));
} …Run Code Online (Sandbox Code Playgroud) 我试图使用invoke-command在远程计算机上执行exe.使用远程桌面登录计算机后,在远程计算机上执行exe需要1GB内存,并在一分钟后执行完成.而当我在同一台机器上使用Invoke-Command执行相同的exe时,进程返回OutOfMemoryException并突然结束.我的invoke命令很简单Invoke-Command -Session $someSessionVariable -ScriptBlock {Invoke-Expression "abc.exe --arg arg"} -AsJob.
我是否遗漏了有关远程调用限制的内容?
提前致谢.
我正在尝试在Python 3中创建一个允许我在远程计算机上轻松执行函数的构造.假设我已经有了一个python tcp服务器,它将运行它收到的函数,在远程服务器上运行,我现在正在寻找使用像这样的装饰器
@execute_on(address, port)
Run Code Online (Sandbox Code Playgroud)
这将创建执行正在装饰的函数所需的必要上下文,然后将函数和上下文发送到远程机器上的tcp服务器,然后执行它.首先,这有点理智吗?如果没有,你能推荐一个更好的方法吗?我做了一些谷歌搜索,但没有找到满足这些需求的东西.
我对tcp服务器和客户端有一个快速而又脏的实现,所以相当确定它会工作.我可以得到一个字符串表示函数(例如func)传递给装饰器
import inspect
string = inspect.getsource(func)
Run Code Online (Sandbox Code Playgroud)
然后可以将其发送到可以执行的服务器.问题是,如何获取该函数执行所需的所有上下文信息?例如,如果func定义如下,
import MyModule
def func():
result = MyModule.my_func()
Run Code Online (Sandbox Code Playgroud)
MyModule需要在全局上下文中使用func,或者在远程服务器上使用funcs本地上下文.在这种情况下,这是相对微不足道的,但根据何时以及如何使用import语句,它会变得更加复杂.在Python中有一种简单而优雅的方法吗?我现在提出的最好的方法是使用ast库来提取所有import语句,使用inspect模块获取这些模块的字符串表示,然后在远程服务器上重建整个上下文.不是特别优雅,我可以看到很多错误的余地.
谢谢你的时间
我试图对Android应用程序进行分区,以便在手机上部分执行它,部分在服务器上执行(服务器可以在其中运行模拟器).我已经读过Android不支持RMI.我想这样做就像客户端 - 服务器架构一样,模拟器在eclipse中运行.那么实现这个项目是否可行?任何想法都受到高度赞赏.
谢谢.
多年前,我在Diversity University MOO创建了一个编程合作伙伴 - 一个用MOOcode编写的房间,它使用TCP/IP与我校园里的perl服务器进行通信,以编译和执行C,Perl,Bash和其他程序,并将结果返回给MOO合作实验 - 全部用于在MOO教学环境中演示编程语言.该应用程序通常是五六种语言的嬉戏,玩起来很有趣.现在我想在SecondLife中使用LSL做同样的事情.我从这群人那里得到的唯一建议是使用WWW请求,假定为CGI进程构造一个http POST消息.我从不关心html表单,所以我宁愿使用TCP/IP或其他一些通信协议.有谁试过这个谁' d小心提供一些提示?SecondLife中有几个很好的LSL演示站点,但我想演示其他编译器和脚本语言,甚至可能是PowerShell.迪克S.
tcp communication remote-execution linden-scripting-language
作为复杂的BASH脚本的一部分,我想从脚本本身在远程系统上执行命令.
现在,我运行脚本为远程系统定制文件并上传它们,然后通过ssh登录我执行一个命令.
所以满分:
remote-execution ×10
ssh ×3
bash ×2
linux ×2
python ×2
android ×1
browser ×1
debian ×1
eclipse ×1
parsing ×1
php ×1
powershell ×1
regex ×1
sanitization ×1
scripting ×1
shell ×1
sysadmin ×1
tcp ×1
unix ×1
user-input ×1