Articles of ssh

sshpipe道命令错误

我在一台机器上运行 ssh root@lPServerHgl cat /root/devops/giveAllArtifacts.txt | xargs -I {} sh -c "grep {} /ci/test.log;" 我得到grep:/ci/test.log:没有这样的文件或目录 但是服务器上的相同命令( cat /root/devops/giveAllArtifacts.txt | xargs -I {} sh -c "grep {} /ci/test.log;"正常工作,没有任何错误。 PS的SSH连接没有任何问题。所有其他的命令正在通过SSH工作。似乎有一些pipe道命令的问题。

在两个IP地址上设置一个dask分布式调度器?

我是dask新手,看起来有点奇怪的用例,我想在一个带有两个networking接口的“桥接”机器上设置一个dask调度器,这样客户端就可以连接到其中一个接口(“前”)和工作人员将住在连接到另一个接口(“后”)的多台机器上。 接口具有独立的IP地址和主机名。 本质上,我想要做这张照片 ,棕色和蓝色的作品之间没有路线,除了通过带有调度器的机器。 (图片来自dask散布的一些旧文档,0.7我认为,当事情明显比现在更不安定时) 一切都是64位的Linux(Debian 8“jessie”),我正在使用dask的0.14.0和1.16.0的分布式,安装在anaconda环境中。 dask-scheduler命令行工具似乎没有办法做多个主机名,我想是我想要的。 我可以通过SSH端口转发获得我想要的效果 。 例如,假设相关接口是机器worker , scheduler-front , scheduler-back和client 。 两个scheduler-*接口是同一台机器上的不同NIC,并且有一个从client scheduler-front的TCP路由,以及从scheduler-back到worker的TCP路由,但是从scheduler-front没有从client worker路由到worker ,或者从scheduler-back到client 。 然后,下面的工作(下面的引导位是一个命令行提示符,指示运行命令的机器,'#'表示shell,'>>>'表示Python): 首先,启动一个在桥主机的“后面”监听的调度器: scheduler# dask-scheduler –host schedular-back 其次,以一种普通的方式启动一个worker并将其连接到调度器: worker# dask-worker scheduler-back:8786 第三,将客户端上的本地主机:8786转发到调度程序机器上的调度程序回退:8786,通过调度程序前端接口进行ssh入门: client# ssh -L 8786:scheduler-back:8786 scheduler-front 最后,启动客户机上的客户机,并连接到转发端口的另一端可以看到调度程序的近端。 client>>> from distributed import Client client>>> cl = Client('127.0.0.1:8786') client>>> … 正如我所说,这个工作,我可以做地图和聚集,并获得结果。 但是我不禁想到自己正在做这件事,也许我错过了一些简单的东西,可以让多宿主的日程安排。 私人子网并不奇怪,它们出现在容器和集群的背景下。 有没有更聪明的方法来做到这一点? 如果有兴趣的话,不使用集群排队系统的原因是目标“工人”机器是一个带有GPU的机器,而我们在排队系统分配上遇到一些困难,所以目前,该机器在排队系统之外工作。 我们最终会解决这个问题,但现在,我们正在努力做到这一点。 […]

从access.log获取前20个IP – 按IPsorting – 添加用户代理

使用这个命令,可以从apache access.log获得前20个Ips cat access_log | awk '{print $1}' | sort -n | uniq -c | sort -nr | head -20 我知道,用户代理可以通过以下方式显示: awk -F\" '{print $6}' 要么 cut -d\" -f 6 但如何将这些结合起来? 我想按IPsorting并在IP后面追加用户代理。 例: 544.45.234.5 Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)

如何在Linux上启动asp.net核心服务器并保持运行

我在Azure Ubuntu VM上创build了基本的ASP.Net Core服务器。 我已经使用nginx将服务器暴露给端口80。 我通过SSH连接到VM。 然后用“dotnet run”命令启动服务器。 这工作正常。 但是,每当我closuresSSH连接,服务器也停止。 有没有办法启动并继续运行Linux上的asp.net核心服务器没有一个积极的SSH连接?

如何在GNU并行中为不同的主机使用不同的–workdir

我想在本地机器和远程机器上执行我的script.sh 。 但是,在本地机器上, script.sh文件位于~/dir1/ ,远程机器位于/dir2 。 我试过的是:在~/dir1/本地机器上运行: parallel –workdir /dir2 -S remotemachine -S : ./script.sh ::: someargs 在远程机器上运行良好,但在本地机器上并行也试图运行script.sh里面/dir2

春季启动应用程序不工作后,SSH注销

所以我在Ubuntu LTS服务器上部署了我的Spring Boot应用程序。 它使用maven构build,并使用embedded式Tomcat运行。 我对这个部署过程还不熟悉,我做的是: 通过sshlogin到服务器 使用scp来上传my_application.zip 在ssh中解压缩 java -jar my_application.jar 现在所有这些工作都很好,而且我一直在用这种方式安静一段时间。 现在,我必须让应用程序在退出shell之后保持联机并可用。 我已经阅读了一些有关在Linux上运行后台进程的文档,我尝试过使用nohup java -jar myApplication.jar & ,使用screen命令和bg 。 所有这些工作都很好,而我login到SSH。 这是我的问题: 一旦我结束了ssh会话,Web应用程序仍然可用(所以这个过程显然没有停止),但它看起来和行为真的很奇怪。 CSS不适用,JS不工作等 我的猜测是,一些path或文件系统访问是搞砸了,但我不知道如何可能源于SSH会话。 (当我重新login到ssh时,一切正常) 如果有人在这里有线索会很好

相同的Docker镜像将X11转发给一台主机,但不转发给另一台主机

我创build了一个包含SSH + xeyes的简单的Docker镜像。 我运行该容器,通过使用X11转发SSH连接到容器,并希望能够显示xeyes 。 我在主机A上构build并运行Docker容器。当我连接到容器时, 它不起作用 Error: Can't open display: 我已经在另一台主机上构build和运行了Docker容器, 并且它像一个魅力一样工作。 我不明白区别… 我的Dockerfile: FROM ubuntu:16.04 ENV SSH_PASSWORD "rootpass" RUN apt-get update RUN apt-get install -qqy x11-apps openssh-server ssh # Install SSH access RUN mkdir /var/run/sshd RUN echo "root:$SSH_PASSWORD" | chpasswd RUN sed -i 's/PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config RUN sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i […]

从OpenSSH客户端删除字符

我正在Golang写一个SSH服务器。 目前我有一台服务器可以读写客户端。 当客户端按下删除键时,服务器收到unicode字符13(删除)。 我可以通过发送除了已删除的字符到客户端来重写当前行。 但是,它只会重写我发送的字符数量。 这意味着在input新字符之前,最后的字符不会被重写。 有谁知道服务器需要发送什么,以便从客户端删除字符。 客户 操作系统:Ubuntu 16.04 Ssh版本:1.2.12 Bash版本:4.3

bashvariables扩展pipe道到ssh

我无法理解如何在shell脚本中声明/引用这些variables。 给定commands_to_execute_on_remote.sh的内容为: for c in 1 2 3 4 5 do supervisorctl restart broadcast-server-${ENVIRONMENT_NAME}-${c} done 在本地计算机上将ENVIRONMENT_NAME声明为环境variables… 当我从本地机器运行时,例如: cat commands_to_execute_on_remote.sh | ssh user@123.456.789 如何引用这些variables,以便在脚本被传送到远程框时, $ENVIRONMENT_NAME被填充实际值,但$c很明显 – 脚本中的循环计数器?

ssh和窗口ID

我有一个项目在学校,这是困扰我…我从我自己的Debian框通过SSH到计算机实验室的Solaris计算机通过 ssh -Y name@***.cs.<school> 我可以进去,X11似乎也在工作。 然而,这个小型项目需要我们通过xwininfo来find一个netscape窗口的窗口id,并在下面的命令中使用这个信息 netscape -id 0xa00029 -remote 'openFile(/path/to/html/file)' 现在,如果这个netscape是我打开的唯一的窗口(除了xterm),上面的命令工作得很好。 然而,如果我有任何其他iceweasel窗口打开(不pipe我打开netscape / iceweasel的顺序),该命令将转发到我的iceweasel,尽pipe事实上,我在我的SSH会话中运行命令,两个窗口都非常不同的窗口ID。 所有这些最终都要进入一个C程序,但我甚至不能让它可靠地手动工作! 有任何想法吗? PS我刚看到这可能会有所帮助。 当我使用相同的命令通过Cygwin / X进行SSH连接时,出现此错误 Warning: No xauth data; using fake authentication data for X11 forwarding. 不知道这是否是重要的,因为我仍然可以完美地使用X11(aparently)。 谢谢。 PPS的-id开关logging在netscape手册页中: -id window-id Identifies an X window to receive -remote commands. If you do not specify a window, the first window […]