我用来pgrep查找正在运行的进程有一些单词
> pgrep -f "otp"
2345
2343
Run Code Online (Sandbox Code Playgroud)
识别了多个进程。命令行中还有另一个单词可以帮助我将确切的过程归零。所以,我想搜索两个术语,并且两个术语都应该在那里。不幸的是,我只看到 OR 组合的示例和帮助,如下所示:
> pgrep -f "otp|place1"
2345
2343
3632
Run Code Online (Sandbox Code Playgroud)
这是行不通的,因为它是一个 OR 条件。我的搜索模式中需要一个 AND 条件。
pgrep 参考: https: //linux.die.net/man/1/pgrep
模式:指定用于匹配进程名称或命令行的扩展正则表达式。
如何使用 pgrep 搜索 AND 组合而不是 OR 的两个单词?
早在 Solaris SunOS 之前,就有一个很酷的功能,称为透明文件系统。基本概念允许磁盘文件系统像投影仪上的透明胶片一样堆叠。并允许演示者在顶部透明度上绘制。
透明文件系统的现代等价物是什么?我想要/需要堆叠多个驱动器文件系统。
我将目录/子目录列表传递到剧本中,如下所示:
dirs=['Web\this','Web\that','Web']
Run Code Online (Sandbox Code Playgroud)
当我实际在这些目录上执行任务时(win_shell,调用构建过程),这工作得很好,但后来我需要复制文件,并且“\”在用作文件名的一部分时不起作用。我有兴趣使用以下内容,因此我将获取大多数构建的模块名称以及根文件夹中的“Web”:
dirs[1].split('\\')[-1]
Run Code Online (Sandbox Code Playgroud)
我希望这会分别返回“this”、“that”和“Web”。
但我找不到任何斜杠或正则表达式魔法的组合来分割我的字符串。我在 StackExchange 中发现了大约 5 个接近的问题/答案,但似乎没有一个能做到这一点。
我也尝试过这个与变化
"{{ dirs[1] | regex_replace('\\','-') }}"
Run Code Online (Sandbox Code Playgroud) 在最近的软件更新后,我glat-client在某些系统的系统日志中发现了来自程序的以下消息:
此 GNU/Linux 副本未激活。有关详细信息,请参阅 https://gitlab.com/glat-official/howtotell。
这是什么意思?我应该“激活”我的 GNU/Linux 副本吗?
我这个周末更新了内核,现在使用的是 5.3.1。
christopher@HAL4:~$ uname -r
5.3.1-050301-generic
Run Code Online (Sandbox Code Playgroud)
我需要登录服务器,但我无法再通过主机名登录。例如,我有一个服务器“web4”,它的本地 IP 是 192.168.64.140。如果我运行挖掘:
christopher@HAL4:~$ dig web4
; <<>> DiG 9.11.3-1ubuntu1.9-Ubuntu <<>> web4
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 1580
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1280
;; QUESTION SECTION:
;web4. IN A
;; ANSWER SECTION:
web4. 0 IN A 192.168.64.140
;; Query time: 0 msec
;; SERVER: 192.168.3.222#53(192.168.3.222) …Run Code Online (Sandbox Code Playgroud) 在遵循有关在 CentOS 上安装 tomcat 的教程时,我在执行该行时遇到了问题sudo systemctl enable tomcat- 它抱怨以下错误消息:
The unit files have no installation config (WantedBy, RequiredBy, Also, Alias
settings in the [Install] section, and DefaultInstance for template units).
This means they are not meant to be enabled using systemctl.
Run Code Online (Sandbox Code Playgroud)
但是,我的 [Install] 部分中显然有一个条目:
[Unit]
Description=Tomcat 9 servlet container
After=network.target
[Service]
Type=forking
User=tomcat
Group=tomcat
Environment="JAVA_HOME=/usr/lib/jvm/jre"
Environment="JAVA_OPTS=-Djava.security.egd=file:///dev/urandom"
Environment="CATALINA_BASE=/opt/tomcat/latest"
Environment="CATALINA_HOME=/opt/tomcat/latest"
Environment="CATALINA_PID=/opt/tomcat/latest/temp/tomcat.pid"
Environment="CATALINA_OPTS=-Xms256M -Xmx512M -server -XX:+UseParallelGC"
ExecStart=/opt/tomcat/latest/bin/startup.sh
ExecStop=/opt/tomcat/latest/bin/shutdown.sh
[INSTALL]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)
我怎样才能获得它以允许我启用此服务?我相信我已经完成了它所要求的一切。
我需要一个带有 MISP 处理器的非常小的嵌入式系统上的非常简单的 Web 服务器。我认为最简单的服务器可能是一个监听 TCP 端口的 shell 脚本。
问题是系统甚至没有perl。只有一些基本的外壳/bin/sh。我在网上搜索了“如何从 shell 侦听端口”,但我发现的答案都提到了其他一些工具,例如nc,我没有。
甚至有可能做到吗?
系统,它是一个路由器,安装了 busybox 和/bin目录中的其他一些二进制文件,它们是:
#ls /bin
chown df fatattr gzip login mount
ping rm shuf touch usleep
busybox comgt dmesg fgrep hostname ls
mv ping6 rmdir sleep true vi
busybox-new cp echo flock ip mkdir
netstat printf sdparm split umount watch
cat date egrep grep kill mknod
nice ps sed sync uname wget
chmod dd false gunzip ln more
pidof pwd sh …Run Code Online (Sandbox Code Playgroud) 我们在 Azure 上运行的 Web 应用程序安装了 Azure Let's Encrypt 0.9.6 扩展。启动扩展 ( https://********-website-stage.scm.azurewebsites.net/letsencrypt/) 没有问题,我们可以使用创建证书所需的值填写表单,如附图所示:
大约 2 分钟后,请求超时。我们得到的错误是:
502 - Web 服务器在充当网关或代理服务器时收到无效响应。
您要查找的页面有问题,无法显示。当 Web 服务器(作为网关或代理)联系上游内容服务器时,它收到来自内容服务器的无效响应。
错误日志是这样说的:
错误报告的 Web 应用程序名称 ( ******-website-stage) 存在(它用于******-website-stage.azurewebsites.net),但它看起来有点滑稽 https 前缀,波浪号字符(~1)后面的数字是 1,最后,在 https 上调用端口 80 ?
我们在我们的生产环境中做了完全相同的配置和 letencrypt 安装,它成功了,没有任何问题。
当我们的 Web 应用程序尝试再次联系 Let's Encrypt 以提供有关我们的 Azure Web 应用程序配置的信息(例如,要为其注册证书的主机名)时,似乎会出现此问题。
有什么想法下一步要看吗?
我计划将域注册从 Hover 更改为 AWS。在准备过程中,我首先要将名称服务器从 Hovers 自己的 DNS 更改为 Amazon Route 53。
目前,我已为计划移动的域创建了一个 Route 53 托管区域,并已复制相同的 DNS 条目。我还将所有 DNS 记录的 TTL 设置为 5 分钟(现在我等待 2 天以确保更改是全局性的)。不幸的是,Hover 不允许您为名称服务器设置 TTL,并且他们的文档称更改可能需要 24-48 小时才能发生
使用此策略,当我进行名称服务器切换时是否存在停机风险?
由于 DNS 记录是相同的,我相信它应该是无缝的,新旧 DNS 服务器仍然按预期工作,并且缓存旧名称服务器的用户被发送到旧的 Hover DNS,然后路由到目的地。
我是否遗漏了任何内容,或者是否有任何其他建议来确保不会出现停机?
这是一个非常活跃的域,不能承受任何停机时间。谢谢你!
linux ×2
activation ×1
ansible ×1
azure ×1
centos ×1
dns-zone ×1
filesystems ×1
lets-encrypt ×1
licensing ×1
netplan ×1
networking ×1
pgrep ×1
python ×1
regex ×1
resolv.conf ×1
shell ×1
solaris ×1
sunos ×1
supermicro ×1
systemctl ×1
tcp ×1
tomcat ×1
ubuntu-18.04 ×1