标签: Linux命令

php 执行linux命令,shell脚本函数,获取服务器运行状态值

php 执行shell命令函数,获取服务器运行状态值
*近做到一个监测服务器运行状态相关的东西。需要通过php来调用shell命令来获取所需的信息。
下面就从获取服务器信息简单介绍一下这几个常用相关函数。

1、exec()
exec($command, array &output = null, &output = null, &return_var = null)有三个参数。执行给定的命令,但不输出结果,而是返回结果的*后一行。虽然它只返回命令结果的*后一行,但用第二个参数array 可以得到完整的结果,方法是把结果逐行追加到array的结尾处。所以如果array不是空的,在调用之前*好用unset()*它清掉。只有指定了第二 个参数时,才可以用第三个参数,用来取得命令执行的状态码。
举个栗子:

$out01 = exec(‘ls -l’);
exec(‘ls -l’,$arr);
echo ‘只读取结果的*后一行’.$out01.”\n”;
var_dump(‘以数组的形式返回所有的输出’.$arr);

结果:

/usr/bin/php /Users/tao/PhpSites/csdnBlog/shell/shell.php
只读取结果的*后一行-rw-r–r– 1 tao staff 576 Nov 20 14:14 shell.php
string(44) “以数组的形式返回所有的输出Array”
-rw-r–r– 1 tao staff 576 Nov 20 14:14 shell.php

2、shell_exec()
shell_exec($cmd)只有一个参数,它会获取$cdm执行之后所有的数据。
栗子1:

$connect_num = shell_exec(‘netstat -nat|grep -i “80”|wc -l’);//获取当前服务器的80端口连接数 connect_num的值就是后面linux命令执行之后的输出内容

栗子2:

$out02 = shell_exec(‘ls -l’);

结果:

shell_exec()获取所有的返回值
total 8
-rw-r–r– 1 tao staff 638 Nov 20 14:18 shell.php

exec()和exec_shell()的区别
In short; exec()只返回$cmd命令的*后一行,exec_shell()返回全部的数据,假设*终的命令只有一行,那就随便选择了。但是,exec()命令的后两个参数,让我们可以以数组的操作方式去操作得到的数据,在某些case下,应该比读exec_shell获的的文本的数据强吧。并且还有状态码的返回。应该有些用处吧orz

3、system()
4、popen()
popen函数的执行流程:
1、使用pipe系统调用创建一个管道
2、创建一个新的进程,将拷贝标准输入或者标准输出到文件描述符。
3、关闭pipe返回的文件描述符。
4、调用execve系统调用来执行命令。
5、关闭管道
popen($cmd,$status)是通过”管道”的机制,来创建一个进程,进而来执行$cmd命令的,$status是管道的两种状态,分别是”r”和”w”,而上面所说的命令只有”r”的方式,当执行完shell命令之后,popen的返回值是一个普通的标准I/O流,所以必须要用pclose()将其关闭。
P.S.数据流的基本概念:
数据流是一串连续不断的数据的集合,就象水管里的水流,在水管的一端一点一点地供水,而在水管的另一端看到的是一股连续不断的水流。
数据写入程序可以是一段一段地向数据流管道中写入数据,这些数据段会按先后顺序形成一个长的数据流。
对数据读取程序来说,看不到数据流在写入时的分段情况,每次可以读取其中的任意长度的数据,但只能先读取前面的数据后,再读取后面的数据。
不管写入时是将数据分多次写入,还是作为一个整体一次写入,读取时的效果都是完全一样的。
举个栗子:

//所有连接到本机80端口的IP地址和其连接数。80端口一般是用来处理HTTP网页请求
$fp = popen(‘netstat -plan|grep :80|awk {\’print $5\’}|cut -d: -f 1|sort|uniq -c|sort -nk 1′, “r”);
$online_num = 0;
while (!feof($fp)) {
if(!feof($fp)){
$online_num += 1;
}
}
pclose($fp);
“`
再举个栗子:
“`
//获取某一时刻系统cpu和内存使用情况
$fp = popen(‘top -b -n 2 | grep -E “^(%Cpu|KiB Mem|Tasks)”‘, “r”);
$rs = “”;
while (!feof($fp)) {
$rs .= fread($fp, 1024);
}
pclose($fp);

看起来是不是普通文件的读取操作相似,将fp当做操作文本时候的简单的句柄,然后进行对I/O的操作就OK了、、

in the end
还有很多php来操作linux命令和shell脚本的函数,例如system、passthru等等。

云计算人员如何提高效率 要掌握哪些Linux命令

云计算人员如何提高效率?要掌握哪些Linux命令?随着开源软件的流行以及互联网的高速发展,Linux成功取代Unix成为*受青睐的云计算操作系统。想要学好云计算一定要掌握Linux,接下来就给大家分享云计算人员提高效率工作必须要掌握的Linux命令。

%title插图%num

查看命令

tail -f+文件名 实时显示日志文件内容。还可以使用less命令查看文件内容,并且使用shift+f键也可达到类似的效果。

查看磁盘或内存

Free -h 通过free的结果,很容易看到当前总共内存多少,剩余可用内存多少等。

进程操作

pgrep 进程名称 根据名称查找进程id

killall 进程名称 根据名称杀死进程

pkill 进程名称 根据名称杀死进程

ps -p 进程id -o lstart,etime 查看进程运行时间

快速目录切换

cd - 回到上一个目录

cd 回到用户家目录

清空文件内容

>filename

常用快捷命令

Ctrl+a 光标回到命令行首*

Ctrl+e 光标回到命令行尾*

Ctrl+f 光标向右移动一个字符(相当于方向键右键)

Ctrl+b 光标向左移动一个字符(相当于方向键左键)

Ctrl+Insert 复制命令行内容*

Shift+Insert 粘贴命令行内容*

Ctrl+k 剪切(删除)光标处到行尾的字符*

Ctrl+u 剪切(删除)光标处到行首的字符*

Ctrl+w 剪切(删除)光标前的一个单词

Ctrl+y 粘贴Ctrl+u,Ctrl+k,Ctrl+w删除的文本

Ctrl+c 中断终端正在执行的任务或者删除整行*

Ctrl+h 删除光标所在处的前一个字符(相当于退格键)

Ctrl+d 退出当前Shell命令行*

Ctrl+r 搜索命令行使用过的历史命令记录*

Ctrl+g 从执行Ctrl+r的搜索历史命令模式退出

Esc+.(点) 获取上一条命令的*后的部分(空格分隔)*

Ctrl+l 清除屏幕所有内容,并在屏幕*上面开始一个新行,等同clear命令*

Ctrl+s 锁定终端,使之无法输入内容

Ctrl+q 解锁执行Ctrl+s的锁定状态

Ctrl+z 暂停执行在终端运行的任务*

!! 执行上一条命令

!pw 执行*近以pw开头的命令*

!pw:p 仅打印*近pw开头的命令,但不执行

!num 执行历史命令列表的第num(数字)条命令*

!$ 上一条命令的*后一个参数,相当于Esc+.(点)

Esc+.(点) 获取上一条命令的*后的部分(空格分隔)*

Esc+b 移动到当前单词的开头

Esc+f 移动到当前单词的结尾

Esc+t 颠倒光标所在处及其相邻单词的位置

当然,牢记Linux命令并不代表你就是一个合格的云计算人才,你还需要熟练应用Linux命令,需要掌握云计算相关技能,了解docker容器技术等。如果你想快速掌握这一系列的技术,专业的学习让你高效、快速掌握企业所需的高薪技术!

友情链接: SITEMAP | 旋风加速器官网 | 旋风软件中心 | textarea | 黑洞加速器 | jiaohess | 老王加速器 | 烧饼哥加速器 | 小蓝鸟 | tiktok加速器 | 旋风加速度器 | 旋风加速 | quickq加速器 | 飞驰加速器 | 飞鸟加速器 | 狗急加速器 | hammer加速器 | trafficace | 原子加速器 | 葫芦加速器 | 麦旋风 | 油管加速器 | anycastly | INS加速器 | INS加速器免费版 | 免费vqn加速外网 | 旋风加速器 | 快橙加速器 | 啊哈加速器 | 迷雾通 | 优途加速器 | 海外播 | 坚果加速器 | 海外vqn加速 | 蘑菇加速器 | 毛豆加速器 | 接码平台 | 接码S | 西柚加速器 | 快柠檬加速器 | 黑洞加速 | falemon | 快橙加速器 | anycast加速器 | ibaidu | moneytreeblog | 坚果加速器 | 派币加速器 | 飞鸟加速器 | 毛豆APP | PIKPAK | 安卓vqn免费 | 一元机场加速器 | 一元机场 | 老王加速器 | 黑洞加速器 | 白石山 | 小牛加速器 | 黑洞加速 | 迷雾通官网 | 迷雾通 | 迷雾通加速器 | 十大免费加速神器 | 猎豹加速器 | 蚂蚁加速器 | 坚果加速器 | 黑洞加速 | 银河加速器 | 猎豹加速器 | 海鸥加速器 | 芒果加速器 | 小牛加速器 | 极光加速器 | 黑洞加速 | movabletype中文网 | 猎豹加速器官网 | 烧饼哥加速器官网 | 旋风加速器度器 | 哔咔漫画 | PicACG | 雷霆加速