Articles of linux

清漆5秒延迟

我有一个奇怪的问题与清漆,它在一个API的前面,它caching整个响应。 它大部分工作正常,但时不时要求5秒(或很less10秒,或15秒,总是增量为5)比平常更多的返回。 我已经尝试绕过前面的HAProxy,同样,我检查,它的URL是否已经被caching或没有(我检查了年龄头)。 所以它不能成为后端,因为页面在caching中,这不是什么前面的清漆,只留下清漆本身作为问题的原因。 任何想法可能会导致5秒钟的延迟? 我已经检查varnishlog,在那个延迟清漆没有做任何事情。 我也尝试过在这个延迟期间手动提出另一个请求,清漆回答良好,所以它不会被冻结或任何东西,它工作正常。 在这5秒结束时,它像往常一样输出请求的日志,没有什么奇怪的。 例如: “请求”132712 开始req 132711 rxreq 时间戳开始:1499701302.309413 0.000000 0.000000 时间戳记需求:1499701302.309413 0.000000 0.000000 ReqStart 127.0.0.1 43955 ReqMethod GET ReqURL /url ReqProtocol HTTP / 1.1 ReqHeader User-Agent:curl / 7.38.0 ReqHeader主机:主机 ReqHeader接受: / ReqHeader X-Forwarded-Proto:https ReqHeader X-Forwarded-For:ip ReqHeader连接:closures ReqUnset X-Forwarded-For:ip ReqHeader X-Forwarded-For:ip,127.0.0.1 VCL_call RECV ReqUnset X-Forwarded-For:ip,127.0.0.1 ReqHeader X-Forwarded-For:ip,127.0.0.1,127.0.0.1 VCL_return散列 VCL_call HASH […]

由于未知的语法错误,无法重新启动httpd

我无法重新启动httpd: [root@controller conf.d]# systemctl restart httpd Job for httpd.service failed because the control process exited with error code. See "systemctl status httpd.service" and "journalctl -xe" for details. 我看到日志: [root@controller conf.d]# systemctl status httpd ● httpd.service – The Apache HTTP Server Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled) Active: failed (Result: exit-code) since Thu 2017-07-13 00:01:48 […]

Linux的iptables:为什么在filter表中没有PREROUTING钩子?

如果我不想在我的服务器上收到某些端口,我宁愿尽早丢弃这些数据包,即:在执行路由之前。 sudo iptables -I PREROUTING -p tcp –dport 80 -j DROP iptables: No chain/target/match by that name. 在filter表中没有PREROUTING挂钩的原因是什么?

Compinling HTTPD和OpenSSL从源,服务器string是错误的?

系统有OpenSSL版本1.0.1e这是在CentOS 7回购中可用的,但是从那以后有很多CVE(2013) Httpd是从源代码编译的 ./configure –enable-so –enable-ssl –enable-cache-disk –enable-cache-socache –enable-deflate –with-mpm=prefork –enable-fpm –enable-cgi –with-ssl=/usr/local/ssl/include –enable-ssl-static-lib-deps –enable-mods-static=ssl 然而,即使重新启动服务器SSL版本显示: curl –head http://localhost HTTP/1.1 301 Moved Permanently Date: Fri, 14 Jul 2017 04:46:26 GMT Server: Apache/2.4.25 (Unix) OpenSSL/1.0.1e-fips PHP/5.6.30 mod_myfixip/1.4 Location: XYZ Cache-Control: max-age=0 Expires: Fri, 14 Jul 2017 04:46:26 GMT Content-Type: text/html; charset=iso-8859-1 但仔细检查httpd二进制文件,它看起来像预期的那样编译为1.0.21: ^@ssl_engine_init.c^@AH02209: CA certificate: %s^@init_server^@chil^@TLSv1.2, […]

openVPN和433端口上的myhttpd

我试图设置OpenVPN来侦听Asteror NAS上的443端口,然后通过基于以下方式的port-share选项将所有HTTPS通信传递给Apache: 使用Apache / SSL的OpenVPN端口共享 但是我没有得到它的工作。 我认为问题是,端口443似乎正在听一个进程myhttp。 当我运行#netstat -tulpn | grep LISTEN命令,我会得到这个结果: tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 4475 / myhttpd 当我将OpenVPN上的端口更改为444并运行#netstat -tulpn | grep LISTEN命令再次,我会得到下一个结果: tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 4475 / myhttpd tcp 0 0 0.0.0.0:444 0.0.0.0:* LISTEN 1507 / openvpn tcp 0 0 127.0.0.1:1195 0.0.0.0:* LISTEN 1507 / openvpn 我不知道如何解决这个问题。 有没有人有build议?

检查单个PHP-FPM进程的平均内存使用情况

我尝试了以下命令来检查单个PHP-FPM进程的平均内存使用情况 ps –no-headers -o "rss,cmd" -C php-fpm | awk '{ sum+=$1 } END { printf ("%d%s\n", sum/NR/1024,"M") }' 我得到了一个错误awk: cmd. line:1: fatal: division by zero attempted awk: cmd. line:1: fatal: division by zero attempted 而这个命令 total=0; for i in `ps -C php-fpm -o rss=`; do total=$(($total+$i)); done; echo "Memory usage: $total kb"; Memory usage: 0 […]

如何在Linux中查找参考目录结构的重复文件

这里列出了几个重复的Linux文件查找器。 我已经尝试了fdupes和fslint。 但是,从我所看到的,这些将会find所选目录结构/searchpath的所有重复项,因此也会重复存在于其中一个searchpath中(如果select多个)。 然而,我需要的是根据参考pathsearch重复项,我可以在其中定义一个path作为参考path,并在其他path中search参考path中存在的文件,以便将其删除。 我需要这样做,准备两个不同步的大型目录结构,其中一个比另一个更新(这将是我的参考)。 大部分的文件应该是两者之间的重复,但我怀疑还有一些文件只在另一个path上,所以我不想删除它。 为了达到这个目的,我可能有一些select可以忽略吗? 我已经尝试编写一个Python脚本来清理fdupes输出的列表,但不能成功。

pipe道发送电子邮件到Perl脚本

我一直在试图将传入的电子邮件传递给perl脚本,以便我可以通过发送电子邮件的发票来监视潜在的问题,而且没有太多的运气。 使用Red Hat Linux 2.6.32-696-6.3.el6.x86_64,cPanel 56.0(build 51)和Exim 4.87 使用cPanel,我已经将[email protected]收到的电子邮件转发到|/home/myuser/emailtest.pl 。 我从不同search拼凑的脚本看起来像这样(脚本权限设置为755): #!/usr/bin/perl # This is a test! use strict; use warnings; use File::Touch; use File::stat; use Time::localtime; my $file_list = ('/home/myuser/testfile'); touch $file_list; my $timestamp = ctime(stat($file_list)->mtime); #print $timestamp; #print "\n"; 我最初得到一个反弹的错误,经过一些阅读,我看到它可能是因为我打印的时间戳。 我并不需要打印时间戳,我只是在自己运行脚本的时候这样做,以validation是否可以“触摸”文件,还可以读取date。 在注释掉打印命令之后,不再有反弹。 当从shell运行脚本时,脚本仍然有效,并且我可以从'ls'validation时间戳,但是当我发送电子邮件到我的testing帐户时,仍然没有运气。 但是,当电子邮件到达时,脚本似乎没有成功地触摸文件。 我没有得到反弹,但'testfile'永远不会改变,除非我从shell手动运行脚本。 我已经尝试将脚本移动到/ home / myuser / public_html以及相同的结果。 我想最终能够在接收到电子邮件时“触摸”文件,然后使用每日cron作业来检查文件的时间戳。 如果4天没有更改文件,我想让它给我发一封电子邮件,让我知道可能有问题。 […]

在扩展Linux卷时缺lessLV名称和VG名称

我正在尝试扩展第二卷/ u01,使用我以前使用的过程来扩展卷,而无需重新启动服务器。 我无法findLV名称和用于扩大音量的VG名称。 这可能只是在过去,我只更新了“8e Linux LVM”,而这是第一次尝试扩展“83 Linux”驱动器。 我还没有find任何过程来扩大这种驱动器types,而不卸载现有的驱动器。 我在vSphere中添加了空间,并扫描驱动器。 ls sd * sda sda1 sda2 sdb sdb1 dev]# ls /sys/class/scsi_device/ 0:0:0:0 0:0:1:0 2:0:0:0 [root@lsaa21d dev]# echo 1 > /sys/class/scsi_device/0\:0\:0\:0/device/rescan [root@lsaa21d dev]# echo 1 > /sys/class/scsi_device/0\:0\:1\:0/device/rescan [root@lsaa21d dev]# echo 1 > /sys/class/scsi_device/2\:0\:0\:0/device/rescan 运行fdisk我看到新的sdb2磁盘空间 fdisk -l Disk /dev/sdb: 96.6 GB, 96636764160 bytes, 188743680 sectors Units = sectors […]

如何通过中介服务器转发websocket通信?

我试图通过中间服务器(托pipe在AWS EC2实例上)连接websocket服务器(linux机器)和客户机(web浏览器)。 EC2实例提供websocket服务器和客户端可以引用的公有IP。 我的客户端连接到ws://<SERVER>:<PORT> ,其中SERVER是我的EC2实例的地址, PORT是我为端口转发打开的任意端口(例如9111 )。 在websocket服务器上,我正在运行以下命令: /usr/bin/ssh -f -N -i $KEY -l ubuntu \ -R $PORT:127.0.0.1:9090 \ -L 9090:$SERVER:$PORT \ $SERVER 其中$KEY是EC2的私钥, 9090是我的websocket服务器使用的端口。 我configuration了我的EC2实例的ssh守护进程来启用网关端口,并且端口转发工作正常。 当我尝试启动我的websocket服务器时,问题来了 – 我得到一个Address already in use错误,因为显然我不能启动我转发的端口上的websocket服务器。 这不是一个相当标准的事情吗? 我究竟做错了什么? 谢谢!