1、Linux 服务器因 CPU 温度过高自动重启
http://www.s2.cn/news.php?id=33

2、Linux服务器不明原因重启了,怎么查找原因
http://bbs.51cto.com/archiver/tid-861470.html

3、重启的信息可以通过
dmesg来看
系统的log一般都是记录在/var/log/messages里
命令:
cat /var/log/messages | grep 'reboot'

4、linux启动日志: /var/log/boot.log


实践如下:

[root@xiyou-vedio_encode_bj_sjs_10_71_11_22 ~]#  last reboot
reboot   system boot  2.6.32-696.6.3.e Mon Aug 14 10:37 - 10:41  (00:03)    
reboot   system boot  2.6.32-696.6.3.e Mon Aug 14 09:57 - 10:41  (00:43)    
reboot   system boot  2.6.32-696.6.3.e Mon Aug 14 08:58 - 10:41  (01:43)    
reboot   system boot  2.6.32-696.6.3.e Mon Aug 14 08:52 - 10:41  (01:48)    
reboot   system boot  2.6.32-696.6.3.e Mon Aug 14 08:36 - 10:41  (02:04)    
reboot   system boot  2.6.32-696.6.3.e Mon Aug 14 08:07 - 10:41  (02:34)


[root@xiyou-vedio_encode_bj_sjs_10_71_11_22 ~]# cal
     August 2017    
Su Mo Tu We Th Fr Sa
       1  2  3  4  5
6  7  8  9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31


linux启动日志: /var/log/boot.log
mount.nfs: rpc.statd is not running but is required for remote locking.
mount.nfs: Either use '-o nolock' to keep locks local, or start statd.
mount.nfs: an incorrect mount option was specified

来自:http://blog.sina.com.cn/s/blog_56d8ea900101cytr.html
问题:请编写一个JavaScript函数parseQueryString,它的用途是把URL参数解析为一个对象。

运行结果:
a c
eg:var obj=parseQueryString(url);

创建对象的三种形式:

一:
var Person=new Object();
Person.name="Sun";
Person.age=24;

二:
var Person=new Object();
Person["name"]="Sun";
Person["age"]=24;

三:
对象字面量表达式
var Person={
name: "Sun",
age: 24
}

PS:
1、在这个例子中,比较适合使用第二种形式,向obj中添加元素
2、split("&") , 如果url只有一个参数的时候,没有“&”的时候,也不会报错,只会返回array[0]
function parseQueryString(url) {
    var obj = {};
    var keyvalue = [];
    var key = "",
        value = "";
    var paraString = url.substring(url.indexOf("?") + 1, url.length).split("&");
    for (var i in paraString) {
        keyvalue = paraString[i].split("=");
        key = keyvalue[0];
        value = keyvalue[1];
        obj[key] = value;
    }
    return obj;
}

以下介绍了JS根据key值获取URL中的参数值及把URL的参数转换成json对象,js通过两种方式获取url传递参数,代码
示例一:
//把url的参数部分转化成json对象
parseQueryString: function(url) {
     var reg_url = /^[^/?]+/ ? ([/w/W] + ) $ / ,
         reg_para = /([^&=]+)=([/w/W]*?)(&|$|#)/g,
         arr_url = reg_url.exec(url),
         ret = {};
     if (arr_url && arr_url[1]) {
         var str_para = arr_url[1],
             result;
         while ((result = reg_para.exec(str_para)) != null) {
             ret[result[1]] = result[2];
         }
     }
     return ret;
}
// 通过key获取url中的参数值
getQueryString: function(name) {
    var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
    var r = window.location.search.substr(1).match(reg);
    if (r != null) return unescape(r[2]);
    return null;
}
示例二:
js通过两种方法获取url传递参数:
js获取url传递参数方法一:
这里是一个获取URL带QUESTRING参数的JAVASCRIPT客户端解决方案,相当于asp的request.querystring,PHP的$_GET
函数:
function GetRequest() {
    var url = location.search; //获取url中"?"符后的字串
    var theRequest = new Object();
    if (url.indexOf("?") != -1) {
        var str = url.substr(1);
        strs = str.split("&");
        for (var i = 0; i < strs.length; i++) {
            theRequest[strs[i].split("=")[0]] = (strs[i].split("=")[1]);
        }
    }
    return theRequest;
}

然后我们通过调用此函数获取对应参数值:
var Request = new Object();
Request = GetRequest();
var 参数1,参数2,参数3,参数N;
参数1 = Request[''参数1''];
参数2 = Request[''参数2''];
参数3 = Request[''参数3''];
参数N = Request[''参数N''];
以此获取url串中所带的同名参数
js获取url传递参数方法二 正则分析法:
function GetQueryString(name) {
    var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
    var r = window.location.search.substr(1).match(reg);
    if (r != null) return (r[2]);
    return null;
}
alert(GetQueryString("参数名1"));
alert(GetQueryString("参数名2"));
alert(GetQueryString("参数名3"));
其他参数获取介绍:
//设置或获取对象指定的文件名或路径。
alert(window.location.pathname);
//设置或获取整个 URL 为字符串。
alert(window.location.href);
//设置或获取与 URL 关联的端口号码。
alert(window.location.port);
//设置或获取 URL 的协议部分。
alert(window.location.protocol);
//设置或获取 href 属性中在井号“#”后面的分段。
alert(window.location.hash);
//设置或获取 location 或 URL 的 hostname 和 port 号码。
alert(window.location.host);
//设置或获取 href 属性中跟在问号后面的部分。
alert(window.location.search);

From:https://www.w3cschool.cn/json/1koy1piy.html
背景:用Linux的信号Signal实现发信号给进程,是一种进程间通讯的办法,主要用来重新加载配置、重启服务、杀死进程、进程间通讯等。
下面就是一个通过向进程发送Signal信号以该进程退出,重新起了一新的子进程,用到了kill -HUP PID,主要是学习HUP信号的C语言编码方法。


gcc 编译:
gcc nohup.c -o b.out

运行:
./a.out


ps aux|grep b.out
root      4919  0.0  0.1   4296  1328 pts/6    S+   20:22   0:00 ./b.out

kill -HUP 4919

#ps aux|grep b.out
root      4958  0.0  0.1   4296  1324 pts/6    S    20:23   0:00 ./b.out

From:http://www.jb51.net/article/37422.htm
用Win+R 打开运行界面,输入mmc:
点击在新窗口中浏览此图片
在打开的控制台界面,从菜单中选择“文件”-“添加或删除管理单元”,然后从“可用的管理单元”添加“远程桌面”到“所选的管理单元”中,点击“确定”:
点击在新窗口中浏览此图片
最后,右键点击“远程桌面”-“添加新连接”,输入需管理的客户端IP地址即可访问。
=======================================================================================

背景:10台Windows Server 2012上面装上盗版的Loadrunner,想假装很专业的做一下接口测试。要根据自己的32位还是64位下载安装后,那个控制面板里的打开和关闭Windows功能才有角色管理工具->远程桌面服务工具。

对于远程管理Windows 机器来说,远程连接可能是用得最频繁的。过去,我总是把远程连接保存为.rdp 文件,以方便双击后自动连接。如果有多台机器需要管理,可以放在某个目录中,但总觉得这样的方式很笨。直到今天,在客户现场,无意中发现MMC 中是可以加入“远程管理”功能的。回来找资料看了一下,觉得还不错,特适用于同时连接多台机器的情况。

一、界面
描述前,先给个使用界面看看吧:
点击在新窗口中浏览此图片
对于【附件】中的【远程桌面连接】(即mstsc.exe)来说,主要是管理更方便了,只需一个.msc 文件即能轻松打开管理窗口,并在多个连接窗口之间切换。屏幕分辨率可设定,但似乎没有提供全屏的功能。

二、安装及配置
该MMC 使用的远程桌面组件,实际上是服务器平台提供的功能,所以,在默认的桌面系统中是没有提供的,需要独立安装。以Windows 7为例,步骤有:
1、下载组件
从下面的连接中下载“Windows 7 远程服务器管理工具”:
点击:http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&FamilyID=7d2f6ad7-656b-4313-a005-4e344e43997d#filelist

下载前,请留意页面中的说明,包括:
引用
a、仅可以安装在运行企业版、专业版或旗舰版 Windows 7 的计算机上;
b、安装管理工具包的计算机上 Administrators 组的成员;
c、根据运行版本不同,下载适用于x86或x86_64 平台的程;
d、下载后的包,后缀名为.msu,双击即可安装(若使用第三方工具下载,后缀名可能会被修改)。

2、远程桌面功能
安装完毕后,依次打开:“控制面板”-“程序和功能”-“打开或关闭Windows功能”-“远程服务器管理工具”-“角色管理工具”,勾选下面的“远程桌面服务工具”:
点击在新窗口中浏览此图片

3、在MMC中添加远程管理组件
用Win+R 打开运行界面,输入mmc:
点击在新窗口中浏览此图片
在打开的控制台界面,从菜单中选择“文件”-“添加或删除管理单元”,然后从“可用的管理单元”添加“远程桌面”到“所选的管理单元”中,点击“确定”:
点击在新窗口中浏览此图片
最后,右键点击“远程桌面”-“添加新连接”,输入需管理的客户端IP地址即可访问。

4、分辨率问题
创建连接后,右键点击该连接,选择“属性”,在“屏幕选项”中可设置分别率:
点击在新窗口中浏览此图片
建议使用“填充MMC 结果窗格”,确定后,通过工具栏上的图标,关闭多余的显示窗口:
点击在新窗口中浏览此图片
关闭MMC (保存为.msc 文件)。重新打开,即可满屏显示远程终端窗口。


摘自 :http://www.linuxfly.org/read.php?561
I came across this maddening error, when I had a website I needed to archive.  I spidered the website, had a local copy that looked good, and uploaded the website.  But, now the website had “an error occurred while processing this directive” right where some important content existed (the sidebar).

As it turns out, the error is from SSI – server side includes.  I had

<!--#comment-->
sprinkled liberally throughout the code.  And yes, it was a wordpress blog I intended to archive.  The wordpress theme had rendered the code after the SSI, so it would work fine while in wordpress, but would not upload correctly.

Solution:

change
<!--#comment-->
to
<!-- comment-->
Totally easy fix, once you know.

Hope that helps,

–Ben

来自:https://www.prestashop.com/forums/topic/367147-solved-an-error-occurred-while-processing-this-directive/
查下最后登录/最近登录系统的用户是谁的命令:last ,上次登录的历史信息。通过搜索:/var/log/wtmp,
last
root     pts/8        111.199.59.117   Mon Jan  8 22:12   still logged in



nl file.txt   #看行数

快捷打开Vim:Ctrl+x+e ,先设置:
export EDITOR=/usr/local/bin/vim


du -h --max-depth=1
3.7M    ./.git
20K     ./nianbaoc++
28K     ./echoman
24K     ./nodestudy
16K     ./epoll_example_codes
15M     .


expr 做加减法:
expr 1 + 1
2

look命令:
look car
Linux look命令Linux 命令大全Linux look命令用于查询单词。look指令用于英文单字的查询
look没有find功能强大,但他有一个功能是find所没有的,就是搜索英文单词我们知道系统自带的单词表是没有中文解释的,如果你安装的是中文操作系统。 我们就可以自制一个英文词汇表
http://www.it610.com/article/2766338.htm
look car
CAR
Car
car
Cara
Carabancel
...

look: /usr/share/dict/words: 没有那个文件或目录
ls  /usr/share/dict/words
/usr/share/dict/words

32位还是64位操作系统?
getconf LONG_BIT
64


dstat
You did not select any stats, using -cdngy by default.
----total-cpu-usage---- -dsk/total- -net/total- ---paging-- ---system--
usr sys idl wai hiq siq| read  writ| recv  send|  in   out | int   csw
  4   4  92   0   0   0|  64k   33k|   0     0 |4075B 2071B| 258   308
  1   1  98   0   0   0| 384k    0 |  48k   43k|   0     0 | 249   211
  7  17  75   0   0   1|   0   248k|4854B   12k|   0     0 | 592   673
5月12日晚,WanaCrypt0r 2.0勒索软件在全球爆发(简称 WCry2.0),Wcry2.0利用4月份nsa泄露的安全漏洞对windows系统进行攻击,从而植入勒索软件,据统计全球上百个国家的13万多台电脑遭到感染,其中不乏大型企业,医院及各种公共服务行业,带来了巨大的恶意影响。

漏洞、文件加密型的勒索软件、比特币付费解密的完美组合,已成为网络攻击敲诈勒索的最佳实践。我们看到近年来不断出现利用各种服务漏洞和不安全配置进行勒索敲诈的案例,如大量裸奔在互联网的hadoop、mongodb、elasticsearch等服务的不安全配置及弱口令导致的勒索。

同样linux ssh服务也面临以上的风险,据国外媒体报道,一台在互联网运行的linux系统开启ssh服务10秒内,就会出现对ssh的口令破解攻击,由此可见攻击者通过自动化的方式不断去扫描整个互联网寻找攻击目标,ssh用户口令破解也因为攻击手段简单、粗暴,技术门槛低成为最常见的攻击方式。ssh做为linux系统最最主要的远程管理工具,一旦成功破解系统用户密码,尤其是root用户,就会获得系统的最高权限,除了可以通过勒索软件用来实施勒索外,系统也可能被安装后门、木马等恶意软件,成为僵尸主机。

如果您还在使用密码登陆ecs实例的ssh服务,除了通过安全组设置严格的ssh服务登陆源地址外,强烈建议改用SSH密钥对 登陆ecs实例,禁用密码方式登陆。SSH密钥对利用高强度的公私钥及对称加密算法实现对用户的认证,有效降低了破解用户口令的攻击。

来源:某云,后面是广告,就不粘贴了。
背景:经常一些应用爱搞一天一个目录,天数多了里面文件也大了,磁盘也占满了,怎么办?得每天删除1个月的日志。于是一个月的时间就得用上了。
Mysql删除七天前的,搬过来:

我要的是这个:


一、Linux的Shell系统下的Date/date函数用法:


Egg: cat /root/del_catalina.sh


In Bash:
get year-month-day from date
DATE=`date +%Y-%m-%d`
get year-month-day hour:minute:second from date

DATE=`date +%Y-%m-%d:%H:%M:%S`


二、获取昨天、明天或多天前的日期:
在Linux中可以通过date命令获取昨天、明天、上个月、下个月、上一年和下一年

# 获取昨天
date -d 'yesterday'  # 或 date -d 'last day'
# 获取明天
date -d 'tomorrow'   # 或 date -d 'next day'
# 获取上个月
date -d 'last month'
# 获取下个月
date -d 'next month'
# 获取上一年
date -d ’last year'
# 获取下一年
date -d 'next year'
此外你可以获取多天前,多天后,多个月前,多个月后,多年前或多年后

# 三年前
date -d '3 year ago'
# 五年后
date -d '-5 year ago'
# 两天后
date -d '-2 day ago'
# 一个月前
date -d '1 month ago'


来自:https://my.oschina.net/aiguozhe/blog/57835
find . -mtime +90 -exec sh -c "rm -rf {}" \;
背景:在打包时,需要对源文件是ZIP格式的,给unzip解压文件到指定的打包目录$RPM_BUILD_DIR,查了下,也就是得用到unzip的-d参数。
yum install zip -y
yum install unzip -y



来源 :http://blog.csdn.net/ljchlx/article/details/8028672
tar -xzvf mysql-5.6.15.tar.gz -C ./mysql-5.6.15 --strip-components 1
实践:


man tar
tar --strip-components = NUMBER
...skipping...
       --strip-components=NUMBER
              strip NUMBER leading components from file names on extraction



tar -zxvf codes.doc.qr.cntv.net.tar.gz -C abc/. --strip-components 1

打包来自:codes.doc.qr.cntv.net  codes.doc.qr.cntv.net.tar.gz
再看解压后的目录无codes.doc.qr.cntv.net外层目录了:
tree -L 1 abc/
abc/
├── Application
├── index.php
├── netchkrs
├── Public
├── showdoc.sql
├── test.php
├── Text
└── ThinkPHP

实践来自:http://www.cnblogs.com/zxiaozhou/p/6068867.html
背景:在secureCRT使用vim,alt键映射都被secureCRT占用了,导致设置alt开头的快捷键都不能用,这很不方便 有办法解决这一问题吗?
option -> session options -> termianl -> emulation -> use alt as meta key
vim依然无法正确识别到alt键。
解决了,设置xterm方式就好了。

问题描述:SecureCRT通过ssh登陆一台linux,alt键映射(alt+b,alt+f在shell里是前后一个单词)都被secureCRT占用了。
解决办法 secureCRT -> 选项 ->  会话选项 -> 仿真 -> 映射键; 勾上backspace发送delete。
secureCRT
-> 选项 ->  会话选项 -> 仿真->emacs;勾上use alt as meta key  
SecureCRT最常用的的:alt+b打开一个目录(下一堆IP)和一个IP的,就没法用了,但是提高了操作Shell出现错误的速度。这个打开IP的操作并不常用。
但是那个切换Alt+1,Alt+2...,切换标签的不好使了,艹。后来放弃为了实现alt+b,alt+f在shell里是前后一个单词的理想了,有Ctrl+f,Ctrl+b一个一个跳也成,姑且算是习惯了,得了。

From:https://www.zhihu.com/question/21608031

快捷方式之 securecrt/SecureCRT的delete键向后删除键变为Backspace键之解决办法:
http://jackxiang.com/post/9342/



实践如下:
\cp -r * ../gpac/extra_lib
查找下原因:
实际上cp默认是会覆盖的,出现你这种情况是因为cp被alias成cp -i了,可以通过alias命令查看。
\cp则是告诉shell不要去查alias,直接执行原本的cp

目前,我得知有四种方法:
1.在调用cp的时候加入绝对路径(可通过whereis cp命令得到),如
/bin/cp -f file dir
2.通过直接执行下面的语句调用系统原始的命令:
\cp -f file dir
3.在~/.bashrc里面注释掉 Alias cp='cp -i'
4.unalias cp ,然后再使用cp,但使用后还原alias cp='cp -i'

来自:http://www.oschina.net/question/1588291_166511
Mplayer Error: yasm not found, use --yasm='' if you really want to compile without
背景:就是想把博文里的一些链接给批量替换一下,如:justwinit.cn 替换为jackxiang.com, 这样式的。


二)如对博客里涉及到的HostIP进行替换:


遇到这么个情况:
比如:
Msql里面的某个表的某个字段里面存储的是一个人的地址,有一天这个地址的里面的某个地

名变了,那么他的地址也就要变:

比如:

原来是:


现在这个成都市变为了 “天府”市···
所以,addr字段里面的所有的值,都要把成都市改为  天府市


解决方法:

sql语句:

[sql] view plain copy
update 表名 set 字段名=REPLACE (字段名,'原来的值','要修改的值')  

当然,也可以添加条件:



最后的效果:

[sql] view plain copy
number             addr  
01             四川省天府市XXXXXX街道05号  
02             四川省天府市XXXXXX街道07号  
03             四川省天府市XXXXXX街道09号  
04             四川省天府市XXXXXX街道04号  

来自:http://blog.csdn.net/yuekunge/article/details/14170055
[root@zhang ~]# cd my document
cd 一个含空格的目录,会被视为俩个目录,而有优先进入第一个目录(如果两个目录都存在的话):

使用单引号

[root@zhang ]# cd 'my document'
对空格转义

[root@zhang ~]# cd my\ document
在第一个单词之后按下 tab 键也是一样的处理方法,即对空格进行转义;

使用 * 进行匹配

[root@zhang ~]# cd my*document
对于文件夹名开头为(的情况

同样,要么使用单引号,要么使用\,进行转义;

来自:http://blog.csdn.net/lanchunhui/article/details/51211165
参考:http://www.cnblogs.com/wjyHIT2011/p/6801727.html
说明:linux系统下会有一个hash表,当你刚开机时这个hash表为空,每当你执行过一条命令时,hash表会记录下这条命令的路径,就相当于缓存一样。第一次执行命令shell解释器默认的会从PATH路径下寻找该命令的路径,当你第二次使用该命令时,shell解释器首先会查看hash表,没有该命令才会去PATH路径下寻找。

hash表的作用:大大提高命令的调用速率。

hash的参数:
[root@redhat ~]# hash  //输入hash或hash -l 可以查看hash表的内容,我刚开机所以为空
hash: hash table empty
[root@redhat ~]# hash -l
hash: hash table empty

当我执行过2条命令后再看:

[root@redhat ~]# hash  //hash表会记录下执行该命令的次数,以及命令的绝对路径
hits command
   1 /bin/cat
   1 /bin/ls
[root@redhat ~]# hash -l  //加参数-l既可以看到hash表命令的路径,也可以看到它的名字,说不定会有别名哦
builtin hash -p /bin/cat cat
builtin hash -p /bin/ls ls

[root@redhat ~]# hash -p /bin/ls bb  //添加hash表,可以看到我把ls命令重新写了一遍,改名为bb

[root@redhat ~]# bb    //当我执行bb时就是执行ls命令
anaconda-ks.cfg        icmp_echo_ignore_aly~  pub.key
dead.letter        icmp_echo_ignore_alz~  rpmbuild
icmp_echo_ignore_all~  install.log       RPM-GPG-KEY-useradd
icmp_echo_ignore_alw~  install.log.syslog     RPM-GPG-KEY-westos
icmp_echo_ignore_alx~  passwd


[root@redhat ~]# hash -t ls  //-t参数可以查看hash表中命令的路径,要是hash表中没有怎么办?
/bin/ls

[root@redhat ~]# hash -t df  //我没使用过df,执行hash,就会提示找不到该命令
-bash: hash: df: not found

[root@redhat ~]# hash -r  //清楚hash表,清楚的是全部的
[root@redhat ~]# hash -l
hash: hash table empty

[root@redhat ~]# hash -l
builtin hash -p /bin/cat cat
builtin hash -p /bin/ls ls
[root@redhat ~]# hash -d cat   //清楚其中的某一条
[root@redhat ~]# hash -l
builtin hash -p /bin/ls ls

From:http://www.cnblogs.com/linux-super-meng/p/3788739.html
分页: 25/272 第一页 上页 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 下页 最后页 [ 显示模式: 摘要 | 列表 ]