一台Linux服务器M上的一个普通账号a,想获得root账号的权限。我听到的有以下两种表述:
表述一:XX管理员,请帮忙给机器M下账号a添加root权限;
表述二:XX管理员,请帮忙给机器M下账号a添加sudo权限;
继续阅读
作者归档:salmonl
IPv6地址转为ip2long
由php curl函数请求异常引发的思考
也算是百年一遇的一个现象,调用一个接口服务(假如:url = ‘http://i.niliu.me/xx/xx/xx’), 以下两种方式都正常返回:
0、通过浏览器地址栏发起请求。【不区分浏览器】
1、通过linux下curl命令发送请求。
curl 'http://i.niliu.me/xx/xx/xx'
但是,通过php curl函数请求返回500错误信息。(无论是单个curl请求,还是多个请求curl multi)
继续阅读
cron用法整理
看了很多资料把cron和crontab混为一谈,这里从澄清概念开始。
0、什么是cron。
在Linux环境下,周期性执行一些任务,用cron。cron由crond守护进程和一组crontab文件(配置文件)组成。
crond守护进程随系统启动,每分钟读取检查一次crontab文件,并通过fock子进程执行满足条件的指令。
# 查看cron手册 man cron # 查看crond进程 ps -ef | grep 'crond' | grep -v 'grep'
记一次对MC取数据时间不敏感Debug过程
故障描述:客户端线上页面偶现白页
Debug 过程流
0、第一反应是部分服务器挂了,很快排除。
1、CURL请求页面数据API,一直有数据。跟端上沟通,端上会有超时出现白页的情况。查接口果然超时。
2、如何处理?第一反应是如何做性能优化,而不是为什么会超时。当然,性能优化前提也是要分析超时原因,即性能瓶颈。【事后来看第一时间问为什么会超时的思维更高效】
继续阅读
Git常用命令整理一(Git stash)
这里整理的用到过git stash的场景,以下场景用过git stash就知道方便
继续阅读
PHP使用include(require)原则
一个类有几千行,拆分其中的一部分封装成一个单独的类(这里一个类一个文件),通过引入这个类文件,减少原代码的行数,增加代码可读性和可维护性。
这里有两个疑虑:
一、引入外部的类文件,用PHP那个方法include, require?
二、引入外部类,然后再实例化,性能损耗如何?
重要说明:包含外部文件路径设置,以及include_path是如何起作用可见鸟哥博客风雪之隅:深入理解PHP之require/include顺序
设置include_path
php.ini中可参考手册这里。
include_path=".:/php/includes"
php-fpm.conf中
php_admin_value[include_path] = ".:/usr/local/sinasrv2/lib/php"
PHP代码中参考手册这里。
set_include_path('/usr/lib/pear'); // 或使用 ini_set ini_set('include_path', '/usr/lib/pear');
一、引入外部文件用那个方法
我们知道PHP包含并运行外部文件有4个语句结构,include、require、include_once、require_once。include(require)_once直接忽视,就当不存在,原因可见文末的使用原则。
继续阅读
phpredis zRangeByScore取全量数据用法
我们首先看下redis-cli下ZRANGEBYSCORE的用法[这里redis命令都用大写]:
ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]
返回有序集key中score在min和max直接的成员(默认闭区间[min, max],可用符号(min, (max来指定为开区间),按score递增排序。可选参数WITHSCORES决定是否要返回score。可选参数LIMIT指定返回偏移量后的数量,不指定则返回全量。
继续阅读
PHP或运算的一个浅显Bug
前几天赶项目,遍历一组数据,类型是8或9的单独处理,当时是这样写的:
// 片段一 $type = '8'; if ($type != 8 || $type != 9) { echo 'do job_b' , PHP_EOL; } else { echo 'do job_a' , PHP_EOL; }
以上,期望输出”do job_a”, 但是输出的却是”do job_b”, 当时觉得很费解,无赖时间比较紧就换了一个写法:
继续阅读
PHP7下除0返回NAN错误
线上的一个项目,过去一周数据展示异常。排查的过程中发现PHP7和PHP5的一个有趣的差异,特记录下来。
为了尽量把问题描述清楚,单独抽象了一个极简模型:电视节目排行榜,每个电视节目有4项数据(阅读数、互动数、搜索数、播放数),假如数据已经生成好,要求根据这4项数据制作一个Top100榜单,显示节目排名和分值(0-100之间)
继续阅读