AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-9159

SpliFF's questions

Martin Hope
SpliFF
Asked: 2021-07-27 22:53:20 +0800 CST

使用ansible将主机变量转换为env文件真的很慢

  • 1

我在ansible中有以下任务:

- name: Set env vars
  lineinfile:
    path: "~/.env"
    mode: 0600
    create: yes
    line: "{{ item.key|upper }}=\"{{ item.value }}\""
    regexp: "^{{ item.key|upper }}="
  loop: "{{ env_file |dict2items }}"

.env它正在逐行创建文件,但它真的很慢。有没有更好的办法?

.yml 文件如下所示:

env_file:
  key1: "value1"
  key2: "value2"

生成的文件具有以下格式:

KEY1="value1"
KEY2="value2"

每行大约需要 20 秒来处理,而且确实加起来。

ansible
  • 1 个回答
  • 36 Views
Martin Hope
SpliFF
Asked: 2014-07-23 21:51:22 +0800 CST

如何正确转义 bash 脚本中使用的 rsync 排除模式?

  • 2

脚本:

#!/bin/bash

site=$1
remote_host=$2
new_site=${3:-$1}

cmd="rsync -rlpuvz -e ssh /www/$site/ $remote_host:/www/$new_site --force --delete --exclude=\"site/web_sitemap_*.xml.gz\""
echo $cmd
$cmd

脚本输出:

[xxx@xxx ~]$ rsync -rlpuvz -e ssh /www/xxx/ xxx:/www/xxx --force --delete --exclude="site/web_sitemap_*.xml.gz"

sending incremental file list
deleting site/web_sitemap_ff3abe06_000.xml.gz

它似乎将引号\"视为文字"文件名/模式字符。我用单引号(未转义)得到'与"--exclude='site/web_sitemap_*.xml.gz'". 但是,如果我们在没有任何类型的嵌入式引号的情况下尝试相同的事情,它就可以工作!未引用版本:

[xxx@xxx ~]$ touch /www/xxx/site/web_sitemap_ff3abe06_000.xml.gz

[xxx@xxx ~]$ rsync -rlpuvz -e ssh /www/xxx/ xxx:/www/xxx --force --delete --exclude=site/web_sitemap_*.xml.gz

sending incremental file list

sent 41624 bytes  received 290 bytes  7620.73 bytes/sec
total size is 18233892  speedup is 435.03

:不使用引号似乎是答案,但是如果 rsync 排除模式包含通常会被 bash 扩展或解释的符号(如or;或\or ) ,我该如何防止 shell 扩展或解释特殊字符[?

bash
  • 1 个回答
  • 1517 Views
Martin Hope
SpliFF
Asked: 2014-06-25 05:17:07 +0800 CST

隧道时 Apache / Tomcat AJP DNS 失败

  • 0

我有一种情况,我可以直接从主机或本地网络访问私有 NAT-ed apache2.4 / tomcat7.0 railo4.2 服务器,但是当通过 SSH 远程端口转发隧道时,应用程序会因错误而中断:

The proxy server received an invalid response from an upstream server.
The proxy server could not handle the request GET /.

Reason: DNS lookup failure for: server-dev:5555

显而易见的答案是 server-dev 是一个不可解析的主机名,但这里不应该是这种情况,因为lynx server-dev:80在服务器本地或子网上的 LAN 机器上工作(名称通过客户端和服务器上的 /etc/hosts 解析)。apache 提供的静态页面也可以工作,错误似乎出现在 Tomcat 端或 AJP 连接器中。我自己从 2.4.9 源代码和 1.5.1 年编译了 apache。唯一似乎在端口转发时出现。

Apache 错误日志显示:

[Tue Jun 24 22:37:06.911541 2014] [proxy:error] [pid 16858] [client 10.10.10.15:63398] AH00898: DNS lookup failure for: server-dev:5555 returned by /

没有什么值得注意的catalina.out或我能看到的任何其他日志。

相关的apache配置是:

<VirtualHost *:80>
    ServerName server-dev
    UseCanonicalName On

    RewriteCond %{REQUEST_FILENAME} /[^/:]+\.cfml*($|/)
    RewriteRule (.*) ajp://%{HTTP_HOST}:8009$1 [P,L]
</VirtualHost>

SSH 隧道是从第三个“中间人”系统 (10.10.10.15) 使用 PuTTY 创建的,设置如下:

Remote: 5555
Local: 10.10.10.101:80

服务器上的相关 /etc/hosts 条目(它没有绑定/dnsmasq):

10.10.10.101  server-dev  # servers private ip

似乎是主机文件被忽略并且正在尝试 DNS 解析,或者 5555 端口号以某种方式混淆了它(就像它认为它是主机名的一部分),尽管我想不出任何一个好的理由即将发生。

domain-name-system
  • 1 个回答
  • 1983 Views
Martin Hope
SpliFF
Asked: 2014-03-13 20:22:56 +0800 CST

在 cron 脚本中更改运行级别是否安全?

  • 5

我想做一个服务器 A 到服务器 B 的夜间“热克隆”。建议服务器 B 在此操作期间运行最少的守护进程,因此我想创建一个几乎只运行 sshd 并切换到/从该运行级别的“最小”运行级别脚本中间的运行级别,即:

# do some stuff ...

# take services down
telinit 2

# do backup ...

# bring services back up
telinit 3

# do post-backup stuff ...

我想做一个运行级别切换而不是显式启动/停止服务,这样我就可以在许多不同配置的机器上使用相同的脚本(不同的服务,一些在 systemv-init 上,一些在 systemd 上)。为了可维护性,我想将它们全部保存在一个脚本中,而不是创建一堆新的 initd/systemd 启动/停止脚本。

所以问题的本质是: * telinit 会停止脚本(假设 cron 在两个运行级别中)?* telinit 是等待完成还是立即返回?* 如果上述工作是否“安全”,或者该方法是否存在潜在问题?* 有没有更好的方法可以使用单个脚本(同样我宁愿避免安装一堆新的初始化脚本,所以这个东西在很大程度上是“独立的”和可移植的)

linux
  • 2 个回答
  • 1004 Views
Martin Hope
SpliFF
Asked: 2009-09-08 17:04:28 +0800 CST

tomcat'文档库不存在'错误(但确实存在)

  • 1

Gentoo / 雄猫 6

INFO: Starting Servlet Engine: Apache Tomcat/6.0.20
Sep 8, 2009 10:34:51 AM org.apache.catalina.core.StandardContext resourcesStart
SEVERE: Error starting static Resources
java.lang.IllegalArgumentException: Document base /www/rivervalley/site does 
not exist or is not a readable directory
    at org.apache.naming.resources.FileDirContext.setDocBase(Unknown Source)
    at org.apache.catalina.core.StandardContext.resourcesStart(Unknown Source)
    at org.apache.catalina.core.StandardContext.start(Unknown Source)
    at org.apache.catalina.core.ContainerBase.start(Unknown Source)
    at org.apache.catalina.core.StandardHost.start(Unknown Source)
    at org.apache.catalina.core.ContainerBase.start(Unknown Source)

真的吗?那怎么来的:

ls -la /www/rivervalley/site/
drwxr-xr-x 12 tomcat tomcat 4096 Sep  8 09:56 .
drwxr-xr-x 16 tomcat tomcat 4096 Jun 29 16:22 ..
-rwxr--r--  1 tomcat tomcat  520 Jul  3 02:15 Application.cfm
drwxr-xr-x  2 tomcat tomcat 4096 Sep  8 09:56 WEB-INF

和 ...

tomcat   18916  1.0  5.5 1159188 167892 ?      Ssl  10:37   0:11 /opt/sun-jdk-1.5.0.18/bin/java -Djava.util.loggin

地狱,任何帐户都可以读取该目录,因此该声明完全是胡说八道。还有什么可能导致这种情况?

这是我的相关 server.xml 部分:

  <Host name="rivervalley" appBase="webapps" unpackWARs="false" autoDeploy="false" xmlValidation="false" xmlNamespaceAware="false">
     <Context path="" docBase="/www/rivervalley/site" />
  </Host>
tomcat
  • 2 个回答
  • 15852 Views
Martin Hope
SpliFF
Asked: 2009-08-26 22:04:15 +0800 CST

在 RHEL4 上升级 glibc 而不会破坏任何东西

  • 3

我有一个静态版本的 wkhtmltopdf,它需要 glibc-2.4

wkhtmltopdf:/lib/tls/libc.so.6:未找到版本“GLIBC_2.4”(wkhtmltopdf 需要)

我已经安装了 DAG 存储库。除了Coldfusion MX7之外,服务器是相当标准的。

我的问题是,这样做安全"apt update glibc"吗?更新的 glibc 会破坏旧的 glibc 还是会共存?我应该"apt upgrade"整个服务器吗?

我很确定其他所有东西(Apache2、Postgres8 等)都会处理升级,但 Coldfusion 由于其专有性质而让我担心。

package-management
  • 2 个回答
  • 1751 Views
Martin Hope
SpliFF
Asked: 2009-06-22 20:09:24 +0800 CST

xmpp 在聊天中更改状态

  • 0

我已经使用 ejabberd 建立了实时聊天。它工作得很好,但我希望能够根据谁已经在聊天中以及谁可以自由交谈,对不同的操作员进行循环聊天会话。为了实现这一点,我需要一些方法来根据他们当前是否在私人聊天中更新用户的存在。我目前正在使用 mod_shared_roster 来宣传存在,但它只报告用户是否可用。

这确实需要在服务器端完成,因为我需要依赖不同的 IM 客户端,具体取决于运营商的系统。

xmpp ejabberd
  • 2 个回答
  • 781 Views
Martin Hope
SpliFF
Asked: 2009-06-22 06:59:39 +0800 CST

xmpp / ejabberd。向所有其他用户显示用户的存在

  • 1

我正在使用 ejabberd 来实现网络“实时聊天”。在我的实验过程中,我曾经拥有它,因此当您登录客户端时,会显示所有其他登录用户的存在。经过多次配置更改后,我让系统按照我想要的方式工作,只是它停止报告其他用户的存在。

基本上,我希望客户知道管理员何时登录,因为这将使他们能够在编写问题之前知道他们是否会得到答案。目前,它甚至不会告诉您在管理员离线时是否收到了您发送的消息(它只是被要求稍后发送)。

我使用 jwchat 作为客户端,虽然我可以捕获所有存在数据包,但 ejabberd 似乎没有发送它们(可能是隐私问题,我不知道)。有任何想法吗?

编辑:最好我可以告诉我需要 mod_roster 但是我找不到任何关于如何配置它的文档。有没有人可以分享任何信息?

xmpp ejabberd
  • 2 个回答
  • 6747 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve