我在Ubuntu VM上部署了一个Laravel项目。我现在正在编写一个脚本,以了解当前的VM是使用nginx还是Apache编程部署的。
我知道我可以使用这些ps
和grep
命令进行检查,我会找到答案
root@theawsbiz:~# ps -aux | grep apache
root 3446 0.0 1.8 544540 37144 ? Ss 17:02 0:00 /usr/sbin/apache2 -k start
www-data 3449 0.1 1.9 550388 39796 ? S 17:02 0:00 /usr/sbin/apache2 -k start
www-data 3454 0.0 1.0 547336 21532 ? S 17:02 0:00 /usr/sbin/apache2 -k start
www-data 3457 0.0 1.8 548196 37864 ? S 17:02 0:00 /usr/sbin/apache2 -k start
www-data 3458 0.0 1.0 547320 21428 ? S 17:02 0:00 /usr/sbin/apache2 -k start
www-data 3462 0.0 1.7 550008 36264 ? S 17:02 0:00 /usr/sbin/apache2 -k start
www-data 3465 0.0 1.8 550408 38160 ? S 17:02 0:00 /usr/sbin/apache2 -k start
www-data 3466 0.0 1.9 550400 40512 ? S 17:02 0:00 /usr/sbin/apache2 -k start
www-data 3467 0.0 1.0 547320 21416 ? S 17:02 0:00 /usr/sbin/apache2 -k start
www-data 3468 0.0 1.7 548228 36236 ? S 17:02 0:00 /usr/sbin/apache2 -k start
www-data 3520 0.0 0.9 546872 19964 ? S 17:06 0:00 /usr/sbin/apache2 -k start
root 3526 0.0 0.0 14856 1036 pts/1 S+ 17:06 0:00 grep --color=auto apache
root@theawsbiz:~# ps -aux | grep nginx
root 3529 0.0 0.0 14856 1092 pts/1 S+ 17:06 0:00 grep --color=auto nginx
root@theawsbiz:~#
有了这些结果,我知道这个VM使用的是Apache。
但是,我不知道如何通过Bash脚本检查它。一个人要怎么做呢?现在我愿意听取任何建议。
5条答案
按热度按时间xxls0lw81#
由于您正在尝试使用
grep
和ps
来实现这一点,因此可以执行以下操作:zengzsys2#
ss
命令可以告诉您哪个进程正在侦听端口。例如,
ss -tlnp | grep -E ":80\b"
告诉您哪个进程正在侦听tcp端口80。你可以看到它是Apache或Nginx。5lhxktic3#
1.您可以对localhost进行curl并grep头文件
或者只运行pgrep
f4t66c6m4#
由于curl并不总是检索web服务器的类型,您可以在服务器上本地使用以下代码:
如果你有很多值,不要使用break语句(gitlab使用nginx)。
如果你在服务器上有netstat(我认为你可以使用/proc信息):
对于https的端口80或443。
最好的问候
hzbexzde5#
使用ps检查进程信息:运行以下命令以查看正在运行的Web服务器进程:复制代码
如果输出显示名称为apache2或httpd的进程,则表明Apache正在运行。如果它显示的进程名为nginx,那么它就是Nginx。