有一个脚本调用其他脚本,它们调用其他脚本...我不知道究竟调用了哪些脚本以及调用了多少个脚本。我只知道其中一些正在添加 iptables 规则,当我调用根脚本时出现此错误。
iptables: No chain/target/match by that name.
iptables: No chain/target/match by that name.
Run Code Online (Sandbox Code Playgroud)
我的问题是我找不到哪个脚本输出这个错误。有什么方法或工具可以学习吗?
我将如何根据 GUID 确定来宾的名称,反之亦然,最好只安装 Hyper-V/Server Core 股票?
理由:
我赞成有一个肮脏的技巧库,以便在非常需要时恢复。为了在不丢失状态的情况下立即停止 VM 来宾的所有(存储)操作,我曾经运行kill 17 <all VM's virtual processes>(发出SIGSTOP信号),然后在 ESXi/vSphere shell 中使用kill 19 <all VM's virtual processes>(发出信号SIGCONT)恢复。
我在 Hyper-V 上使用 Process Explorer 的“暂停”功能在vmwp.exe进程上尝试了相同的技术,它似乎有效。不过,我还没有找到一种方法来轻松识别要挂起的进程——vmwp 命令行只列出了一个 GUID。
我正在尝试设置 Tomcat 以从新贵开始。我发现以下作品:
description "Tomcat Server"
start on runlevel [2345]
stop on runlevel [!2345]
respawn
respawn limit 10 5
setuid tomcat
env JAVA_HOME=/usr/lib/jvm/default-java
env CATALINA_HOME=/opt/apache-tomcat-7.0.34
script
chdir $CATALINA_HOME
exec $CATALINA_HOME/bin/catalina.sh run
end script
Run Code Online (Sandbox Code Playgroud)
但是如果我删除chdir,tomcat 会启动,但是FileNotFound当我.wars加载时有很多例外。(也就是说:.wars它们自己确实加载了但它们在加载时抛出异常。)
请注意,此行为与我从命令行调用时所看到的不同catalina.sh。从命令行调用,我可以/opt/apache-tomcat-7.0.34/bin/catalina.sh run 从任何目录(没有 chdiring)运行,一切都很好。
那么为什么chdir在我的新贵脚本中是必要的呢? (新贵环境与我的命令行环境有何不同?)
我不使用 chdir 时看到的错误示例:
Feb 22, 2013 3:00:11 AM org.apache.catalina.startup.HostConfig deployWAR
INFO: Deploying web application archive my-war.war
log4j:ERROR setFile(null,true) call failed.
java.io.FileNotFoundException: my-war.log …Run Code Online (Sandbox Code Playgroud) 我试图不记录来自特定 IP 地址的请求,如下所示:
location = / {
index index.php;
if ( $remote_addr = "spe.ci.fic.ip" )
{
access_log off;
}
}
Run Code Online (Sandbox Code Playgroud)
但它不起作用,为什么?
我正在开发一个用于 monit 状态检查的脚本,以便我可以将 OK 状态消息发送到 NagiOS NSCA 服务器(被动检查)。我遇到的问题是,如果脚本 grep 函数不包含任何会触发消息发送的内容,我的 bash 脚本仍会发送消息。
脚本:
变量
rsysl='rsyslog'
log='messages'
Run Code Online (Sandbox Code Playgroud)
变量中的命令
host=$(hostname)
monstat=$(monit status|grep -C 1 '$rsysl')
nsca_status=$(echo -e "$host\t$rsysl\t0\tOK" | /usr/sbin/send_nsca -H mon.lv.lan -c /etc/send_nsca.cfg)
Run Code Online (Sandbox Code Playgroud)
监控状态命令
# Postfix check
$monstat
Run Code Online (Sandbox Code Playgroud)
如您所见,消息发送功能仅在状态等于未运行且不可访问时发送消息
if [ "status" == "not running" ] && [ "status" == "not accessible" ]; then
$nsca_status
else
:
fi
Run Code Online (Sandbox Code Playgroud)
Grep 输出(在实际情况下,消息发送命令必须匹配运行和可访问:
# monit status|grep -C 1 'rsyslog'
Process 'rsyslog'
status Running
-- …Run Code Online (Sandbox Code Playgroud) 我希望能够根据其中找到的模式拆分日志文件。
例如处理所有日志并查找/(\w+)\s匹配/myresource但排除/myresource/anythingelse,将所有内容重定向到/var/log/extractedlog/myresource/access.log. 我可以使用一点 grep 轻松编写脚本,但是,尝试实时执行此操作可能会使问题变得更难。例如,我想两次调用该程序而不生成重复项。
编辑
这是一个完整的代码,可以使用 syslog-ng 获得类似的东西/etc/syslog-ng/syslog-ng.conf(信用获得接受的答案):
# no-parse let syslog load any source
source s_unparsed_source {
file("/var/log/myservice/access.log"
flags(no-parse));
};
# Just protect the input and avoid syslog-ng header to be added in the final log
template t_preserve_message {
template("$MSG\n");
template_escape(no);
};
# This will filter the message only matching the given expression
filter f_match_pattern1 {
match("\/pattern1");
};
destination d_target1 {
file("/var/log/target/pattern1/access.log" template(t_preserve_message));
};
# The actual logging …Run Code Online (Sandbox Code Playgroud) 我正在考虑运行一个脚本来每晚重新启动 Windows 2012 服务器,并且所有指南似乎都用于使用计划任务。据我所知,管理员凭据的更改会破坏任务。
是否有工具/脚本意味着我不需要使用这些凭据,因为我们将密码保留很短的时间。
随时提出更多问题
所以基本上,我完全按照有关 iptraf 监控和 rrdtool 的指南进行操作。我/usr/lib/cgi-bin/像往常一样将它放入cgi 脚本中。然后,当我从浏览器访问它时,它制作的图像似乎已损坏。出于调试目的,我暂时将权限设置为 777。我认为 Apache2 正在尝试将 png 文件作为脚本执行。我该如何防止?下面是我的配置文件。提前致谢!
哦。我以 root 身份运行。
#tail /var/log/apache2/error.log
[Sun Mar 01 06:13:05 2015] [error] [client 192.168.0.241] Premature end of script headers: tcp_services-25-6hr.png, referer: http://192.168.0.1/cgi-bin/tcp.cgi
[Sun Mar 01 06:13:05 2015] [error] [client 192.168.0.241] Premature end of script headers: tcp_services-80-6hr.png, referer: http://192.168.0.1/cgi-bin/tcp.cgi
[Sun Mar 01 06:13:05 2015] [error] [client 192.168.0.241] Premature end of script headers: tcp_services-22-6hr.png, referer: http://192.168.0.1/cgi-bin/tcp.cgi
[Sun Mar 01 06:13:49 2015] [error] [client 192.168.0.241] (8)Exec format error: exec …Run Code Online (Sandbox Code Playgroud) 如何将副本与多个过滤器值一起使用?
例如,如果我只指定 1 个值来过滤 (*.jpg)
Copy-Item -Path Y:\TEST -Recurse -Filter *.jpg -Destination D:\Users\MS5253\Desktop\Lots
Run Code Online (Sandbox Code Playgroud)
这为我创建了一个仅包含 jpg 文件的文件夹 (D:\Users\MS5253\Desktop\Lots\TEST)
但我也想过滤 xml 文件,我试过这个:
Copy-Item -Path Y:\TEST -Recurse -Filter *.jpg,*.xml -Destination D:\Users\MS5253\Desktop\Lots
Run Code Online (Sandbox Code Playgroud)
它给了我一个错误。
和这个 : Copy-Item -Path Y:\TEST -Recurse -include "*.jpg","*.xml" -Destination D:\Users\MS5253\Desktop\Lots
它不起作用...
感谢您的帮助,我正在使用带有 Powershell v4 的 Windows 7。
这似乎是一个愚蠢的问题,但我似乎无法将nginx -v输出存储到变量中,甚至无法将其写入 bash 中的文件。 php --version并且mysql --version似乎工作正常,但 Nginx 不会保存。有没有办法做到这一点。我在尝试:
NGINX_VERSION=$(nginx -v)
nginx -v > /home/user/nginxversion.txt
Run Code Online (Sandbox Code Playgroud)
PHP 以同样的方式工作正常,但 nginx 不会保存。
PHP_VERSION=$(php --version)
php -v > /home/user/phpversion.txt
Run Code Online (Sandbox Code Playgroud)