Linux系统被入侵后处理经历
来自:李振良的技术博客 链接:http://lizhenliang.blog.51cto.com/7876557/1769028
背景
操作系统:Ubuntu12.04_x64
运行业务:公司业务系统,爬虫程序,数据队列。
服务器托管在外地机房。
突然,频繁收到一组服务器ping监控不可达邮件,赶紧登陆zabbix监控系统查看流量状况。
来自:李振良的技术博客 链接:http://lizhenliang.blog.51cto.com/7876557/1769028
背景
操作系统:Ubuntu12.04_x64
运行业务:公司业务系统,爬虫程序,数据队列。
服务器托管在外地机房。
突然,频繁收到一组服务器ping监控不可达邮件,赶紧登陆zabbix监控系统查看流量状况。
经常会错误的认为NULL与空字符串''是相同的。这看似是一件不重要的事情,但是在MySQL中,这两者是完全不同的。NULL是指没有值,而''则表示值是存在的,只不过是个空值。对于SQL的新手,NULL值的概念常常会造成混淆,他们常认为NULL与MySQL空字符串是相同的事。情况并非如此。例如,下述语句是完全不同的:MySQL> INSERT INTO my_table (phone) VALUES (NULL);mysql> INSERT INTO my_table (phone) VALUES ('');
Ctrl + Enter在当前行下面新增一行然后跳至该行;Ctrl + Shift + Enter在当前行上面增加一行并跳至该行。
Ctrl + ←/→进行逐词移动,相应的,Ctrl + Shift + ←/→进行逐词选择。
Ctrl + ↑/↓移动当前显示区域,Ctrl + Shift + ↑/↓移动当前行。
<script src="__PUBLIC__/plugins/mobiscroll/mobiscroll.core-2.5.2.js" type="text/javascript"></script>
<script src="__PUBLIC__/plugins/mobiscroll/mobiscroll.core-2.5.2-zh.js" type="text/javascript"></script>
<link href="__PUBLIC__/plugins/mobiscroll/mobiscroll.core-2.5.2.css" rel="stylesheet" type="text/css" />
<script src="__PUBLIC__/plugins/mobiscroll/mobiscroll.datetime-2.5.1.js" type="text/javascript"></script>
<script src="__PUBLIC__/plugins/mobiscroll/mobiscroll.datetime-2.5.1-zh.js" type="text/javascript"></script>
<script src="__PUBLIC__/plugins/mobiscroll/mobiscroll.android-ics-2.5.2.js" type="text/javascript"></script>
<link href="__PUBLIC__/plugins/mobiscroll/mobiscroll.android-ics-2.5.2.css" rel="stylesheet" type="text/css" />
ThinkPHP的模板主题机制,如果只是在PC,只要需修改 DEFAULT_THEME
(新版模板主题默认是空,表示不启用模板主题功能)配置项就可以方便的实现多模板主题切换。
但对于移动端和PC端,也许你会设计完全不同的主题风格,且针对不同的来路提供不同的渲染方式,其中一种比较流行的方法是“响应式设计”,但就本人经
历而言,要实现完全的“响应式设计”并不是那么容易,且解决兼容问题也是个难题,假设是大型站点,比如:淘宝、百度、拍拍这些,响应式设计肯定是满足不了
需求的,而是需要针对手机访问用户提供单独的手机网站。 ThinkPHP
完全可以实现,而且相当简单。和TPM的智能模版切换引擎一样,只要对来路进行判断处理即可。
使用TP3.2.3的PHPExcel在做excel的导入和导出,本地wamp测试正常,上传服务器出现问题出现个错误:Class 'Admin\Action\PHPExcel_IOFactory' not found
<?php
/**
* 获取网卡的MAC地址,目前支持WIN/LINUX系统
* 获取机器网卡的物理(MAC)地址
*/
class getMacAddr{
var $return_array = array();
var $mac_addr;
function getMacAddr($os_type){
switch (strtolower($os_type)) {
case 'linux':
$this->forLinux();
break;
case 'solaris':
break;
case 'unix':
break;
case 'aix':
break;
default:
$this->forWindows();
break;
}
$temp_array = array();
foreach ($this->return_array as $value) {
if(preg_match("/[0-9a-f][0-9a-f][:-]"."[0-9a-f][0-9a-f][:-]"."[0-9a-f][0-9a-f][:-]"."[0-9a-f][0-9a-f][:-]"."[0-9a-f][0-9a-f][:-]"."[0-9a-f][0-9a-f]/i", $value, $temp_array)){
$this->mac_addr = $temp_array[0];
break;
}
}
unset($temp_array);
return $this->mac_addr;
}
function forWindows(){
@exec("ipconfig /all", $this->return_array);
if($this->return_array){
return $this->return_array;
}else{
$ipconfig = $_SERVER["WINDIR"]."\system32\ipconfig.exe";
if(is_file($ipconfig)){
@exec($ipconfig." /all", $this->return_array);
}else{
@exec($_SERVER["WINDIR"]."\system\ipconfig.exe /all", $this->return_array);
}
return $this->return_array;
}
}
function forLinux(){
@exec("ifconfig -a", $this->return_array);
return $this->return_array;
}
}
//方法使用
$mac = new getMacAddr(PHP_OS);
echo $mac->mac_addr;
?>