⑴ linux 下写 shell kill掉运行时间超过5分钟的php进程
可以的,能根据Cpu累积耗时杀掉程序。
相关进程名字要知道哈。
假设以php进程为名字。
p_name=php
while true
do
sleep 3
#每3秒检查一次。
pro="$(ps -A|grep "$p_name"|head -n1)"
time="$(echo $pro|awk '{
split($3,tab,/:/); if (tab[2]+tab[1]*60>=5) {print 1}else{print 0}
}')"
#上面那句利用awk判断时间是不是大于5分钟。是则输出1,否则输出0.
pid="$(echo $pro|awk '{print $1}')"
#如果为1 就杀掉那个进程。
if [ $time = '1' ]
kill -9 $pid
fi
done
⑵ 如何使用Linux的Crontab执行PHP脚本
Linux中crontab是实现定时执行的指令,利用这个指令我们就可以定时执行某一个php文件,从而实现用PHP做Linux自动执行脚本。
如何用PHP作Linux自动执行脚本?
在安装PHP的时候,会产生一个可执行文件,文件名为php.将它 到 /usr/local/bin 下.在终端方式执行php程序:
php -q onlinnum.php
PHP 原本是应用在网页应用的﹐因此它会送出 HTML 的HEADER﹐但是在此我们是要将 PHP 用作 Shell Script﹐"-q" 就是表示不要送 出 HEADER 的意思.你可以试试看不加上 -q 的显示结果。此时你已经可以在终端方式下执行PHP 代码了。 linux命令:cron daemon
这是一个系统中常驻的服务,功能在于执行例行性的工作,如每天一次或每月一 次检查磁盘。cron daemon 会在每分钟检查一次排定的工作表(crontab),看看是否有要执行的指令,所有的输出会以mail寄给用户。
设置 crontab
命令:crontab -e
该命令呼叫vi编辑器来编辑执行的清单。例如
0 0 1,15 * * fsck /home
1 * * * * /home/myhome/printhello
每一行代表一项排定的工作,在指令前为排定的时间,总共有5个栏位,以空格间隔,由左到右依序如下:
--------------------------
分钟 从00到 99
点钟 从0到 24
日 从01到31
月 从01到12
星期 从01到07,代表星期一到星期日
*号表示"每" ,如每天执行,就在第三栏填*号
--------------------------
所以上例的两项工作是:
每月1号和15号检查/home 磁盘
每小时的第一分执行 /home/myhome/printhello 这个文件
查看crontab:crontab -l
删除crontab:crontab -r
我们就知道该怎么利用PHP和crontab命令作Linux自动执行脚本了。
还需要注意什么问题?
如果php中有使用数据库,如oracle等,执行脚本中还需export Oracle的环境设置。因为cron下的脚本执行的用户都是在没登陆状态下执行的,少了很多系统里设置的环境变量的值,在连接数据库的时候会出问题。
⑶ 如何使用PHP实时监控Linux服务器的cpu,内存,硬盘信息
1,Linux下可以在/proc/cpuinfo中看到每个cpu的详细信息。但是对于双核的cpu,在cpuinfo中会看到两个cpu。常常会让人误以为是两个单核的cpu。
其实应该通过Physical Processor ID来区分单核和双核。而Physical Processor ID可以从cpuinfo或者dmesg中找到. flags 如果有 ht 说明支持超线程技术 判断物理CPU的个数可以查看physical id 的值,相同则为同一个物理CPU
2,查看内存大小:
cat /proc/meminfo |grep MemTotal
3,其他一些可以查看详细linux系统信息的命令和方法:
uname -a # 查看内核/操作系统/CPU信息的linux系统信息命令
head -n 1 /etc/issue # 查看操作系统版本,是数字1不是字母L
cat /proc/cpuinfo # 查看CPU信息的linux系统信息命令
hostname # 查看计算机名的linux系统信息命令
lspci -tv # 列出所有PCI设备
lsusb -tv # 列出所有USB设备的linux系统信息命令
lsmod # 列出加载的内核模块
env # 查看环境变量资源
free -m # 查看内存使用量和交换区使用量
df -h # 查看各分区使用情况
-sh # 查看指定目录的大小
grep MemTotal /proc/meminfo # 查看内存总量
grep MemFree /proc/meminfo # 查看空闲内存量
uptime # 查看系统运行时间、用户数、负载
cat /proc/loadavg # 查看系统负载磁盘和分区
mount | column -t # 查看挂接的分区状态
fdisk -l # 查看所有分区
swapon -s # 查看所有交换分区
hdparm -i /dev/hda # 查看磁盘参数(仅适用于IDE设备)
dmesg | grep IDE # 查看启动时IDE设备检测状况网络
ifconfig # 查看所有网络接口的属性
iptables -L # 查看防火墙设置
route -n # 查看路由表
netstat -lntp # 查看所有监听端口
netstat -antp # 查看所有已经建立的连接
netstat -s # 查看网络统计信息进程
ps -ef # 查看所有进程
top # 实时显示进程状态用户
w # 查看活动用户
id # 查看指定用户信息
last # 查看用户登录日志
cut -d: -f1 /etc/passwd # 查看系统所有用户
cut -d: -f1 /etc/group # 查看系统所有组
crontab -l # 查看当前用户的计划任务服务
chkconfig –list # 列出所有系统服务
chkconfig –list | grep on # 列出所有启动的系统服务程序
rpm -qa # 查看所有安装的软件包
cat /proc/cpuinfo :查看CPU相关参数的linux系统命令
cat /proc/partitions :查看linux硬盘和分区信息的系统信息命令
cat /proc/meminfo :查看linux系统内存信息的linux系统命令
cat /proc/version :查看版本,类似uname -r
cat /proc/ioports :查看设备io端口
cat /proc/interrupts :查看中断
cat /proc/pci :查看pci设备的信息
cat /proc/swaps :查看所有swap分区的信息
⑷ 如何使用Linux的Crontab定时执行PHP脚本的方法
写好要执行的PHP文件
然后使用Crontab 对应的时间格式等进行执行即可
linux crontab&每隔10秒执行一次 linux下定时执行任务的方法
=============CRONTAB执行PHP文件============
原理:Crontab sleep结合实现每N秒执行文件,延时方法 sleep N
注意:
60必须能整除间隔的秒数(没有余数),例如间隔的秒数是2,4,6,10,12等。
如果间隔的秒数太少,例如2秒执行一次,这样就需要在crontab 加入60/2=30条语句。不建议使用此方法,可以使用下面介绍的第二种方法。
在LINUX中你应该先输入crontab -e,
然后就会有个vi编辑界面,
再输入0 3 * * 1 /clearigame2内容到里面
:wq 保存退出。
在LINUX中,周期执行的任务一般由cron这个守护进程来处理[ps -ef|grep cron]。
cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间。
cron的配置文件称为“crontab”,是“cron table”的简写。
一、cron在3个地方查找配置文件:
1、/var/spool/cron/ 这个目录下存放的是每个用户包括root的crontab任务,每个任务以创建者的名字命名,比如tom建的crontab任务对应的文件就是/var/spool/cron/tom。
一般一个用户最多只有一个crontab文件。
二、/etc/crontab 这个文件负责安排由系统管理员制定的维护系统以及其他任务的crontab。
三、/etc/cron.d/ 这个目录用来存放任何要执行的crontab文件或脚本。
四、权限
crontab权限问题到/var/adm/cron/下一看,文件cron.allow和cron.deny是否存在
用法如下:
1、如果两个文件都不存在,则只有root用户才能使用crontab命令。
2、如果cron.allow存在但cron.deny不存在,则只有列在cron.allow文件里的用户才能使用crontab命令,如果root用户也不在里面,则root用户也不能使用crontab。
3、如果cron.allow不存在, cron.deny存在,则只有列在cron.deny文件里面的用户不能使用crontab命令,其它用户都能使用。
4、如果两个文件都存在,则列在cron.allow文件中而且没有列在cron.deny中的用户可以使用crontab,如果两个文件中都有同一个用户,
以cron.allow文件里面是否有该用户为准,如果cron.allow中有该用户,则可以使用crontab命令。
在crontab文件中如何输入需要执行的命令和时间。该文件中每行都包括六个域,其中前五个域是指定命令被执行的时间,最后一个域是要被执行的命令。
每个域之间使用空格或者制表符分隔。格式如下:
minute hour day-of-month month-of-year day-of-week commands
合法值 00-59 00-23 01-31 01-12 0-6 (0 is sunday) commands(代表要执行的脚本)
除了数字还有几个个特殊的符号就是"*"、"/"和"-"、",",*代表所有的取值范围内的数字,"/"代表每的意思,"/5"表示每5个单位,"-"代表从某个数字到某个数字,","分开几个离散的数字。
基本格式 :
*****command
分 时 日 月 周 命令
第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令
crontab文件的一些例子:
#每晚的21:30重启apache。
30 21 * * * /usr/local/etc/rc.d/lighttpd restart
#每月1、10、22日
45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart
#每天早上6点10分
10 6 * * * date
#每两个小时
0 */2 * * * date
#晚上11点到早上8点之间每两个小时,早上8点
0 23-7/2,8 * * * date
#每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点
0 11 4 * mon-wed date
#1月份日早上4点
0 4 1 jan * date
很多时候,我们计划任务需要精确到秒来执行,根据以下方法,可以很容易地以秒执行任务。
以下方法将每10秒执行一次#执行PHP文件
# crontab -e
* * * * * php /www/web/test.php
* * * * * sleep 10; php /www/web/test.php
* * * * * sleep 20; php /www/web/test.php
* * * * * sleep 30; php /www/web/test.php
* * * * * sleep 40; php /www/web/test.php
* * * * * sleep 50; php /www/web/test.php
每5秒执行一次
* * * * * for i in `seq 120`; do awesome_scripts& sleep 0.5; done
===================执行脚本==================
原理:每分钟执行脚本,使用for语句循环实现每N秒执行文件
注意:如果60不能整除间隔的秒数,则需要调整执行的时间。例如需要每7秒执行一次,就需要找到7与60的最小公倍数,7与60的最小公倍数是420(即7分钟)。
1.vim crontab1.sh
#!/bin/bash
step=2 #间隔的秒数,不能大于60
for (( i = 0; i < 60; i=(i+step) )); do
$(php '/www/web/test.php')
sleep $step
done
exit 0
2.crontab -e 执行脚本 每分钟执行
# m h dom mon dow command
* * * * * /home/php/crontab/crontab.sh
每7分钟执行一次,60*7 = 420,则循环的时候循环最大是420;则 crontab.sh step的值为7,循环结束条件i < 420, crontab -e可以输入以下语句来实现
# m h dom mon dow command
*/7 * * * * /home/php/crontab/crontab.sh
⑸ 升级php7.3 linux服务器cpu 突然很高
1、通过宝塔面板安装的建站环境是LNMP,使用的Nginx 1.16.1、MySQL 5.5.62、PHP-7.0。2、优化PHP7.0设置。先进入到PHP7.0管理页面。首先先安装一个opcache缓冲器,用于加速PHP脚本,其他的就都按默认的来吧,毕竟安装的扩展太多容易影响性能。修改max_execution_time时间为20.性能调整。这里可以根据自己服务器配置进行设置,宝塔面板比较人性化,会根据你的服务器配置设置推荐方案。可以根据自己服务器内存大小进行计算,一般一个php-fpm进程占用内存30M左右,以1024MB内存1G内存)来计算,大概可以设置34个并发。使用的就是1核1G内存配置的服务器,安装宝塔面板后推荐的是40并发,用不到那么高的并发,所以设置了20并发的方案,并把max_spare_servers数字调整成了14。
⑹ Linux重启PHP的命令操作指南linux重启php命令
Linux是一个相对安全和可靠的操作系统,在维护Web服务器上运行的大量程序时,Linux的可靠性很受欢迎。其中,PHP是Linux上运行的非常流行的脚本语言,经常需要进行重新启动来修正现有的技术问题,因此本文旨在介绍Linux重启PHP的命令操作步骤,以帮助读者了解如何更好地使用Linux操作系统运行PHP脚本。
Linux重启PHP的命令操作步骤如下:
第一步:确保Web服务器已经安装了PHP脚本语言。此外,最好检查一下安装状态,使用以下命令
php -v
第二步:获取PHP服务的服务名。运行以下命令来获取PHP服务的服务名
netstat -ltnp | grep php
第三步:根据获取到的PHP服务名和服务启动和停止命令,进行服务启动和停止操作,执行以下命令来重启PHP
sudo service php7.3-fpm restart
第四步:重新启动PHP服务器之后,使用以下命令查看PHP服务的状态
sudo service php7.3-fpm status
以上就是Linux重启PHP的命令操作步骤,建议在操作前,先做好相关准备工作,比如检查Web服务器安装情况等。最后,建议读者利用Linux上现有的安全功能,来防范可能发生的一些安全威胁,以保证服务的可靠性和稳定性。