背景:今天自己的vps服务器突然重启了,不知何原因,下面这些方法好像也没看明白,先写这儿。
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

来自:http://blog.sina.com.cn/s/blog_56d8ea900101cytr.html
背景:也就是如ssh登录后发邮件,用nohup可以快速推到后台,更快进入终端,不用直到发完邮件才进入#shell下。

发邮件链接:
https://jackxiang.com/post/7579/

linux 重定向 标准错误与标准输出到同一文件 :
strace php include.php > abcdef.txt  2>&1

特别是那个错误输出啥的,这块strace就是一例:
strace php include.php > abcdef.txt  //这样显然是没法实现把输出导入到abcdef.txt文件的啦。

重定向标准错误到标准输出
cat foo 2>&1 得出:strace php include.php > abcdef.txt  2>&1 ,还有别的写法参考来自:
http://blog.chinaunix.net/uid-21142030-id-3211182.html

————————————————————————————————————————————————
先说一下linux重定向:
0、1和2分别表示标准输入、标准输出和标准错误信息输出,可以用来指定需要重定向的标准输入或输出。
在一般使用时,默认的是标准输出,既1.当我们需要特殊用途时,可以使用其他标号。例如,将某个程序的错误信息输出到log文件中:./program 2>log。这样标准输出还是在屏幕上,但是错误信息会输出到log文件中。
另外,也可以实现0,1,2之间的重定向。2>&1:将错误信息重定向到标准输出。
Linux下还有一个特殊的文件/dev/null,它就像一个无底洞,所有重定向到它的信息都会消失得无影无踪。这一点非常有用,当我们不需要回显程序的所有信息时,就可以将输出重定向到/dev/null。
如果想要正常输出和错误信息都不显示,则要把标准输出和标准错误都重定向到/dev/null, 例如:

# ls 1>/dev/null 2>/dev/null

还有一种做法是将错误重定向到标准输出,然后再重定向到 /dev/null,例如:

# ls >/dev/null 2>&1

注意:此处的顺序不能更改,否则达不到想要的效果,此时先将标准输出重定向到 /dev/null,然后将标准错误重定向到标准输出,由于标准输出已经重定向到了/dev/null,因此标准错误也会重定向到/dev/null,于是一切静悄悄:-)

由于使用nohup时,会自动将输出写入nohup.out文件中,如果文件很大的话,nohup.out就会不停的增大,这是我们不希望看到的,因此,可以利用/dev/null来解决这个问题。

(1)舍弃标准输出,将错误输出到log文件中

nohup ./program >/dev/null 2>log &

(2)如果错误信息也不想要的话:

nohup ./program >/dev/null 2>&1 &



+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

关于重定向,参考文章:http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=484163

1. 基本概念

  a、I/O重定向通常与 FD有关,shell的FD通常为10个,即 0~9;(FD:file descripter,文件描述符)
  b、常用FD有3个,为: 0(stdin,标准输入)、1(stdout,标准输出)、2(stderr,标准错误输出),默认与keyboard、monitor、monitor有关;
  c、用 < 来改变读进的数据信道(stdin),使之从指定的档案读进;
  d、用 > 来改变送出的数据信道(stdout, stderr),使之输出到指定的档案;
  e、0 是 < 的默认值,因此 < 与 0<是一样的;同理,> 与 1> 是一样的;
  f、在IO重定向 中,stdout 与 stderr 的管道会先准备好,才会从 stdin 读进资料;
  g、管道“|”(pipe line):上一个命令的 stdout 接到下一个命令的 stdin;
  h、tee 命令是在不影响原本 I/O 的情况下,将 stdout 复制一份到档案去;
  i、bash(ksh)执行命令的过程:分析命令-变量求值-命令替代(``和$( ))-重定向-通配符展开-确定路径-执行命令;
  j、( )  将 command group 置于 sub-shell 去执行,也称 nested sub-shell,它有一点非常重要的特性是:继承父shell的Standard input, output, and error plus any other open file descriptors。
  k、exec 命令:常用来替代当前 shell 并重新启动一个 shell,换句话说,并没有启动子 shell。使用这一命令时任何现有环境都将会被清除,。exec 在对文件描述符进行操作的时候,也只有在这时,exec 不会覆盖你当前的 shell 环境。

2. 基本IO

  cmd > file                        把 stdout 重定向到 file 文件中
  cmd >> file                        把 stdout 重定向到 file 文件中(追加)
  cmd 1> fiel                        把 stdout 重定向到 file 文件中
  cmd > file 2>&1                把 stdout 和 stderr 一起重定向到 file 文件中
  cmd 2> file                        把 stderr 重定向到 file 文件中
  cmd 2>> file                        把 stderr 重定向到 file 文件中(追加)
  cmd >> file 2>&1                把 stderr 和 stderr 一起重定向到 file 文件中
  cmd < file >file2                cmd 命令以 file 文件作为 stdin,以 file2 文件作为 stdout
  cat <>file                             以读写的方式打开 file
  cmd < file                        cmd 命令以 file 文件作为 stdin
  cmd << delimiter                Here document,从 stdin 中读入,直至遇到delimiter 分界符

来自:http://ezplayer.diandian.com/post/2011-06-10/40040502293
CentOS 项目正式发布 CentOS 7.0-1406。相当于是 CentOS 7 的正式版。该版本使用存放于 git.centos.org 上的源码进行构建。所有的源码 rpms 采用相同的密钥进行签名,包括二进制文件。

同时从该版本开始 CentOS 将采用新的版本号规则,其中 1406 表示为 2014年6月。通过使用月份作为版本号,我们可以衍生和补发更新媒体容器和云映像、定期更新同时仍然保持连接到基础发行版的版本。

官方的发行说明请看:http://wiki.centos.org/Manuals/ReleaseNotes/CentOS7

CentOS 7 的主要变化包括:

内核更新至 3.10.0
支持 Linux 容器
Open VMware Tools 及 3D 图像能即装即用
OpenJDK-7 作为缺省 JDK
这次直接从 6.5 升级至 7.0(上文已提及)
ext4 及 XFS 的 LVM 快照
转用 systemd、firewalld 及 GRUB2
XFS 作为缺省文件系统
内核空间内的 iSCSI 及 FCoE
支持 PTPv2
支持 40G 网卡
更信息的改进说明请看红帽企业 Linux 7 的发行说明。

CentOS 7 只提供 64 位版本,下载地址:http://mirror.centos.org/centos/7/isos/

国内镜像:http://mirrors.aliyun.com/centos/7.0.1406/
背景:有时打包不想打包软链接,有时想要打上,这就是涉及到Linux下的tar命令了,找了下,有一个这样的参数,可使用。
-h, --dereference            dump instead the files symlinks point to
       -h, --dereference
       don't dump symlinks; dump the files they point to
实践如下:
[root@test tmp]# tar --help|grep dereference            
  -h, --dereference          dump instead the files symlinks point to.
1)只打软链接进来不打真实文件:
tar -zcvf  testtar-h.tar.gz testtar
2)打真实文件进来:
tar -zcvfh  testtar-h.tar.gz testtar

小技巧:
其实用scp也就自动把软链接给过滤掉了,根本不留下软链接。

摘自:http://bbs.chinaunix.net/thread-1447388-1-1.html
背景:
root@119.10.6.23:/usr/local/php# ps aux|grep watchdog
root         6  0.0  0.0      0     0 ?        S    Aug28   4:50 [watchdog/0]
root        10  0.0  0.0      0     0 ?        S    Aug28   4:11 [watchdog/1]
root        14  0.0  0.0      0     0 ?        S    Aug28   3:58 [watchdog/2]
root        18  0.0  0.0      0     0 ?        S    Aug28   3:36 [watchdog/3]
附:
最简单的安装教程(CentOS)
yum install watchdog -y
modprobe softdog
chkconfig watchdog  on
/etc/init.d/watchdog start

配置看门狗程序,开机自动运行
chkconfig watchdog on
启动看门狗
sudo /etc/init.d/watchdog start
——————————————————————————————————————
     Linux 自带了一个 watchdog 的实现,用于监视系统的运行,包括一个内核 watchdog module 和一个用户空间的 watchdog 程序。内核 watchdog 模块通过 /dev/watchdog 这个字符设备与用户空间通信。用户空间程序一旦打开 /dev/watchdog 设备(俗称“开门放狗”),就会导致在内核中启动一个1分钟的定时器(系统默认时间),此后,用户空间程序需要保证在1分钟之内向这个设备写入数据(俗称“定期喂狗”),每次写操作会导致重新设定定时器。如果用户空间程序在1分钟之内没有写操作,定时器到期会导致一次系统 reboot 操作(“狗咬人了”呵呵)。通过这种机制,我们可以保证系统核心进程大部分时间都处于运行状态,即使特定情形下进程崩溃,因无法正常定时“喂狗”,Linux系统在看门狗作用下重新启动(reboot),核心进程又运行起来了。多用于嵌入式系统。


打开 /dev/watchdog 设备(“开门放狗”):


每隔一段时间向 /dev/watchdog 设备写入数据(“定期喂狗”):


关闭 /dev/watchdog 设备,通常不需要这个步骤:


所需头文件:



转自:http://blog.csdn.net/liigo/article/details/9227205
摘自:http://bbs.linuxtone.org/thread-19567-1-1.html
摘自:http://wjjchen.blog.163.com/blog/static/1628722201342354415584/
【解决方案】
在/etc/sudoers中修改:
Defaults    env_reset
为:
Defaults    !env_reset

一)这样,任何环境变量都可以通过sudo传进去了。
二)那你就把变量写到那个脚本里面去好了,sudo肯定是不会带这个用户的变量过去的,因为两个用户不一样,除非你通过sudo的时候加export去携带。
三)su - -c "命令集"

不过我希望的是,能够不改我的脚本,通过修改系统配置的方式把环境变量传进去。
以前好像通过在/etc/sudoers中配置env_reset和env_keep的方式搞定过。。。
那你直接写到/etc/profile里面不就得了

搞定了!在/etc/sudoers中修改:
Defaults    env_reset
为:
Defaults    !env_reset

这样,任何环境变量都可以通过sudo传进去了。

来自:http://bbs.chinaunix.net/thread-1920936-1-1.html
背景:经常碰到文件修改后才发现没有权限,而事先又没有使用sudo来编辑,有没办法实现保存此次修改不退出再sudo,也不存放临文件?
如:
root用户:
vi /tmp/tee.txt 写上123,保存退出后,再:
chmod -R 755 /tmp/tee.txt  
我再su xiangdong,打开这个文件,然后修改下,想保存,就会提示:E45: 'readonly' option is set (add ! to override)
你听vi提示后,真整个: w!  ,于是又提示你:
"tee.txt" E212: Can't open file for writing
Press ENTER or type command to continue
是不是很搞笑???下面扯了老半天,其说的就是这个问题。

root建立文件,属于root的,它再755后是一个什么状态分析起:
u g o :用户,组,其它!
R w X :读  ,写,执行!
4 2 1 : 4    , 2 ,   1   !
755,也就是说,root是啥都能干,组和其他只能是4+1,及是:读+执行,写2没有这个权限值。你是xiangdong,想修改当然不让修改了。
网上说是这样能摆平,如下:
:w !sudo tee %                                                                                                                                            
[sudo] password for xiangdong:
输入密码这儿
121
jack

Press ENTER or type command to continue  
于是按提示按下enter回车出现下面提示:
W12: Warning: File "tee.txt" has changed and the buffer was changed in Vim as well
See ":help W12" for more info.
[O]K, (L)oad File:
于是再按提示按L键出现(此时已经保存进去了。):
121
jack
"tee.txt" [readonly] 3L, 10C
xiangodng用户退出该vim后,再打开,确实保存成功了。
输入密码折腾一下验证确实是保存了的,经实践确实是可以的,下面就开始整这个是怎么实现的,我对此不太感兴趣,仅仅摘录如下:
——————————————————————————————————————————————————————————
在Linux上工作的朋友很可能遇到过这样一种情况,当你用Vim编辑完一个文件时,运行:wq保存退出,突然蹦出一个错误:
E45: 'readonly' option is set (add ! to override)

这表明文件是只读的,按照提示,加上!强制保存::w!,结果又一个错误出现:
"readonly-file-name" E212: Can't open file for writing

文件明明存在,为何提示无法打开?这错误又代表什么呢?查看文档:help E212:
For some reason the file you are writing to cannot be created or overwritten. The reason could be that you do not have permission to write in the directory or the file name is not valid.

原来是可能没有权限造成的。此时你才想起,这个文件需要root权限才能编辑,而当前登陆的只是普通用户,在编辑之前你忘了使用sudo来启动Vim,所以才保存失败。于是为了防止修改丢失,你只好先把它保存为另外一个临时文件temp-file-name,然后退出Vim,再运行sudo mv temp-file-name readonly-file-name覆盖原文件。

用vi修改文件,保存文件时,提示“readonly option is set”的解决方法:
This is a vim issue, not a file permission issue. If you did not have read permission on the file, you'd see a "Permission denied" error.

Do you invoke vi/vim with the -R option? Are you calling view instead of vi or vim? Do you have set readonly in your .vimrc or in a file in ~/.vim/ftplugin?

In vim you can enter :set noreadonly to unset the readonly flag.

步骤:

1.按Esc键

2.输入  :set noreadonly

3.然后就能正常保存了,你可以输入 :wq 来保存文件了。
来自:http://blog.csdn.net/longerandlonger/article/details/7266055

=============================================================================

目录
解决方案
Vim中执行外部命令
命令的另一种表示形式
%的意义
tee的作用
命令执行之后
更简单的方案:映射
另一种思路
重定向的问题
重定向方案
写在结尾
但这样操作过于繁琐。而且如果只是想暂存此文件,还需要接着修改,则希望保留Vim的工作状态,比如编辑历史,buffer状态等等,该怎么办?能不能在不退出Vim的情况下获得root权限来保存这个文件?

解决方案
答案是可以,执行这样一条命令即可:

:w !sudo tee %

接下来我们来分析这个命令为什么可以工作。首先查看文档:help :w,向下滚动一点可以看到:


把这个使用方法对应前面的命令,如下所示:


我们并未指定range,参见帮助文档最下面一行,当range未指定时,默认情况下是整个文件。此外,这里也没有指定opt。

Vim中执行外部命令
接下来是一个叹号!,它表示其后面部分是外部命令,即sudo tee %。文档中说的很清楚,这和直接执行:!{cmd}是一样的效果。后者的作用是打开shell执行一个命令,比如,运行:!ls,会显示当前工作目录下的所有文件,这非常有用,任何可以在shell中执行的命令都可以在不退出Vim的情况下运行,并且可以将结果读入到Vim中来。试想,如果你要在Vim中插入当前工作路径或者当前工作路径下的所有文件名,你可以运行:

:r !pwd或:r !ls
此时所有的内容便被读入至Vim,而不需要退出Vim,执行命令,然后拷贝粘贴至Vim中。有了它,Vim可以自由的操作shell而无需退出。

命令的另一种表示形式
再看前面的文档:

Execute {cmd} with [range] lines as standard input
所以实际上这个:w并未真的保存当前文件,就像执行:w new-file-name时,它将当前文件的内容保存到另外一个new-file-name的文件中,在这里它相当于一个另存为,而不是保存。它将当前文档的内容写到后面cmd的标准输入中,再来执行cmd,所以整个命令可以转换为一个具有相同功能的普通shell命令:

$ cat readonly-file-name | sudo tee %
这样看起来”正常”些了。其中sudo很好理解,意为切换至root执行后面的命令,tee和%是什么呢?

%的意义
我们先来看%,执行:help cmdline-special可以看到:



在执行外部命令时,%会扩展成当前文件名,所以上述的cmd也就成了sudo tee readonly-file-name。此时整个命令即:

$ cat readonly-file-name | sudo tee readonly-file-name
注意:在另外一个地方我们也经常用到%,没错,替换。但是那里%的作用不一样,执行:help :%查看文档:


在替换中,%的意义是代表整个文件,而不是文件名。所以对于命令:%s/old/new/g,它表示的是替换整篇文档中的old为new,而不是把文件名中的old换成new。

tee的作用
现在只剩一个难点: tee。它究竟有何用?维基百科上对其有一个详细的解释,你也可以查看man page。下面这幅图很形象的展示了tee是如何工作的:

点击在新窗口中浏览此图片
ls -l的输出经过管道传给了tee,后者做了两件事,首先拷贝一份数据到文件file.txt,同时再拷贝一份到其标准输出。数据再次经过管道传给less的标准输入,所以它在不影响原有管道的基础上对数据作了一份拷贝并保存到文件中。看上图中间部分,它很像大写的字母T,给数据流动增加了一个分支,tee的名字也由此而来。

现在上面的命令就容易理解了,tee将其标准输入中的内容写到了readonly-file-name中,从而达到了更新只读文件的目的。当然这里其实还有另外一半数据:tee的标准输出,但因为后面没有跟其它的命令,所以这份输出相当于被抛弃。当然也可以在后面补上> /dev/null,以显式的丢弃标准输出,但是这对整个操作没有影响,而且会增加输入的字符数,因此只需上述命令即可。

命令执行之后
运行完上述命令后,会出现下面的提示:

Vim提示文件更新,询问是确认还是重新加载文件。建议直接输入O,因为这样可以保留Vim的工作状态,比如编辑历史,buffer等,撤消等操作仍然可以继续。而如果选择L,文件会以全新的文件打开,所有的工作状态便丢失了,此时无法执行撤消,buffer中的内容也被清空。

更简单的方案:映射
上述方式非常完美的解决了文章开始提出的问题,但毕竟命令还是有些长,为了避免每次输入一长串的命令,可以将它映射为一个简单的命令加到.vimrc中:


这样,简单的运行:w!!即可。命令后半部分> /dev/null在前面已经解释过,作用为显式的丢掉标准输出的内容。

另一种思路
至此,一个比较完美但很tricky的方案已经完成。你可能会问,为什么不用下面这样更常见的命令呢?这不是更容易理解,更简单一些么?

:w !sudo cat > %
重定向的问题
我们来分析一遍,像前面一样,它可以被转换为相同功能的shell命令:

$ cat readonly-file-name | sudo cat > %
这条命令看起来一点问题没有,可一旦运行,又会出现另外一个错误:

/bin/sh: readonly-file-name: Permission denied  shell returned 1
这是怎么回事?不是明明加了sudo么,为什么还提示说没有权限?稍安勿躁,原因在于重定向,它是由shell执行的,在一切命令开始之前,shell便会执行重定向操作,所以重定向并未受sudo影响,而当前的shell本身也是以普通用户身份启动,也没有权限写此文件,因此便有了上面的错误。

重定向方案
这里介绍了几种解决重定向无权限错误的方法,当然除了tee方案以外,还有一种比较方便的方案:以sudo打开一个shell,然后在该具有root权限的shell中执行含重定向的命令,如:

:w !sudo sh -c 'cat > %'
可是这样执行时,由于单引号的存在,所以在Vim中%并不会展开,它被原封不动的传给了shell,而在shell中,一个单独的%相当于nil,所以文件被重定向到了nil,所有内容丢失,保存文件失败。

既然是由于%没有展开导致的错误,那么试着将单引号'换成双引号"再试一次:
:w !sudo sh -c "cat > %"
成功!这是因为在将命令传到shell去之前,%已经被扩展为当前的文件名。有关单引号和双引号的区别可以参考这里,简单的说就是单引号会将其内部的内容原封不动的传给命令,但是双引号会展开一些内容,比如变量,转义字符等。

当然,也可以像前面一样将它映射为一个简单的命令并添加到.vimrc中:

注意:这里不再需要把输出重定向到/dev/null中。

写在结尾
至此,借助Vim强大的灵活性,实现了两种方案,可以在以普通用户启动的Vim中保存需root权限的文件。两者的原理类似,都是利用了Vim可以执行外部命令这一特性,区别在于使用不同的shell命令。如果你还有其它的方案,欢迎给我留言。
来自:
http://www.kuqin.com/shuoit/20140731/341487.html
http://blog.csdn.net/xinhaozheng/article/details/5756838
http://segmentfault.com/q/1010000000130006
linxu中vim作为crontab -e的默认编辑器设置方法,
希望些方法对各位同学会有所帮助,设置命令很简单,代码如下:





vim /etc/bash.bashrc 或者 vim .bashrc
添加一行

    export EDITOR=vim

保存退出

pi@raspberrypi:~$ vi /home/pi/.bashrc
export EDITOR=vim
top使用_交互命令:
1、输入1可以看到CPU各个核的CPU负载(us,sy,id,wa等)
2、输入shift+p按CPU占用率排序
3、shift+m按内存占用率排序,
4 u然后输入用户名,查看指定用户的进程信息,shift+t按CPU用时排序,shift+n按PID排序  

重点讲下第一条:
1、输入1可以看到CPU各个核的CPU负载

Cpu0 : 1.0%us, 3.0%sy, 0.0%ni, 96.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu1 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st

这里对us,sy,ni,id,wa,hi,si,st进行分别说明:

us  列显示了用户模式下所花费 CPU 时间的百分比。

      us的值比较高时,说明用户进程消耗的cpu时间多,但是如果长期大于50%,需要考虑优化用户的程序。

sy   列显示了内核进程所花费的cpu时间的百分比。

      这里us + sy的参考值为80%,如果us+sy 大于 80%说明可能存在CPU不足。
ni   列显示了用户进程空间内改变过优先级的进程占用CPU百分比。

id   列显示了cpu处在空闲状态的时间百分比。

wa 列显示了IO等待所占用的CPU时间的百分比。

     这里wa的参考值为30%,如果wa超过30%,说明IO等待严重,这可能是磁盘大量随机访问造成的,也可能磁盘或者磁盘访问控制器的带宽瓶颈造成的(主要是块操作)。   //这个wa和vmstat中的wa是相同含义

hi   硬件中断占用CPU

si   软件中断占用CPU

st  丢失时间占用CPU

在后台服务器开发中需要关注us,sy,id,wa等常用指标。

更多:http://blog.163.com/xychenbaihu@yeah/blog/static/1322296552012017105732762/
背景:对于大公司的同步,可能会采用zoomkeeper作肿裁加agent下发shell命令实现,而对于小公司,大都采用linux下有一个叫rsync这样的加上notice作同步。
如何杀死rsync的同步进程d:



阅读全文
背景:群里说到,没有注意,自己升级了下自己的vps服务器,后来公司要求也升级下线上服务器,才知事情严重,为过好国庆升级是必要 的,听说苹果系统说自己系统尽管也用这个bash,如果没有设置高级什么的,不存在此漏洞。

Bash 远程任意代码执行安全漏洞(最严重漏洞)
US-CERT 意识到 Bash 存在一个安全的漏洞,该漏洞直接影响基于 Unix 的系统(如 Linux、OS X 等)。该漏洞将导致远程攻击者在受影响的系统上执行任意代码。
US-CERT 建议用户和管理员重新检查这篇红帽的安全博客。更多的详情只能参考相应 Linux 发行商以获取相应补丁。
你可以使用如下命令来检查系统存在此漏洞:
env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
受影响的系统包括:
CentOS
Debian
Redhat
Ubuntu
红帽系可通过更新 bash 并重启系统来解决这个问题:
# yum update bash
或者:
# yum update bash-4.1.2-15.el6_5.1
此举只是更新了 bash 包,还需要重启系统才能生效。

Ubuntu 用户可以通过如下命令打补丁,无需重启:
apt-get update
apt-get install bash

______________________________
[root@jackxiang ~]# rpm -qa|grep bash
bash-4.1.2-15.el6_5.1.x86_64

背景:想加个内存,Mysql服务器上的内存不够了,就算可以插(插槽都有,现在是4条4G内存,还有空闲八个槽。),不知道兼不兼容,否则不稳定的,不兼容的话,死的更惨,这个不一定了,停产了,就没有办法了。怎么办?得看内存的品牌及型号。
[root@jackxiang ~]# rpm -qa|grep dmidecode
dmidecode-2.11-2.el6.x86_64
[root@jackxiang ~]# dmidecode    
查看服务器型号、序列号:
[root@jackxiang ~]# dmidecode|grep "System Information" -A9|egrep  "Manufacturer|Product|Serial"  
        Manufacturer: VMware, Inc.
        Product Name: VMware Virtual Platform
        Serial Number: VMware-42 18 c8 32 77 c6 ec 16-3f 31 94 e9 d0 34 a6 ac
Linux 查看内存的插槽数,已经使用多少插槽.每条内存多大:
[root@jackxiang ~]# dmidecode|grep -A5 "Memory Device"|grep Size|grep -v Range
        Size: 4096 MB
        Size: 2048 MB
        Size: No Module Installed
        Size: No Module Installed

Linux 查看内存的频率:
[root@localhost htdocs]# dmidecode|grep -A16 "Memory Device"|grep 'Speed'
        Speed: 667 MHz (1.5 ns)
        Speed: 667 MHz (1.5 ns)
        Speed: 667 MHz (1.5 ns)
        Speed: 667 MHz (1.5 ns)
        Speed: Unknown

在linux查看内存型号的命令:
dmidecode -t memory

查看主板型号:
dmidecode |grep -A16 "System Information$"

内存槽及内存条:
dmidecode |grep -A16 "Memory Device$"

硬盘:
fdisk -l
smartctl -a /dev/sda

网卡:
mii-tool
————————————————————————————————————————————————————
dmidecode|grep -P 'Maximum\s+Capacity'    //最大支持几G内存
# cat  /proc/cpuinfo //查看cpu个数与频率
# dmidecode  |grep  "Product Name"  //查看服务器品牌和型号
# dmidecode|grep -P -A5 "Memory\s+Device"|grep Size|grep -v Range       //总共几个插槽,已使用几个插槽
Size: 1024 MB       //此插槽有1根1G内存
Size: 1024 MB       //此插槽有1根1G内存
Size: 1024 MB       //此插槽有1根1G内存
Size: 1024 MB       //此插槽有1根1G内存
Size: No Module Installed       //此插槽未使用
Size: No Module Installed       //此插槽未使用

# dmidecode -t 17        //数字17是dmidecode的参数,本文最后有其他数字参数
dmidecode 2.7
SMBIOS 2.4 present.
Handle 0x0015, DMI type 17, 27 bytes.
Memory Device
  Array Handle: 0x0013
  Error Information Handle: Not Provided
  Total Width: 72 bits
  Data Width: 64 bits
  Size: 2048 MB 【插槽1有1条2GB内存】
  Form Factor: DIMM
  Set: None
  Locator: DIMM00
  Bank Locator: BANK
  Type: Other
  Type Detail: Other
  Speed: 667 MHz (1.5 ns)
  Manufacturer:
  Serial Number: BZACSKZ001
  Asset Tag: RAM82
  Part Number: MT9HTF6472FY-53EA2
Handle 0x0017, DMI type 17, 27 bytes.
Memory Device
  Array Handle: 0x0013
  Error Information Handle: Not Provided
  Total Width: 72 bits
  Data Width: 64 bits
  Size: 2048 MB 【插槽2有1条2GB内存】
  Form Factor: DIMM
  Set: None
  Locator: DIMM10
  Bank Locator: BANK
  Type: Other
  Type Detail: Other
  Speed: 667 MHz (1.5 ns)
  Manufacturer:
  Serial Number: BZACSKZ001
  Asset Tag: RAM83
  Part Number: MT9HTF6472FY-53EA2
Handle 0x0019, DMI type 17, 27 bytes.
Memory Device
  Array Handle: 0x0013
  Error Information Handle: Not Provided
  Total Width: 72 bits
  Data Width: 64 bits
  Size: 2048 MB 【插槽3有1条2GB内存】
  Form Factor: DIMM
  Set: None
  Locator: DIMM20
  Bank Locator: BANK
  Type: Other
  Type Detail: Other
  Speed: 667 MHz (1.5 ns)
  Manufacturer:
  Serial Number: BZACSKZ001
  Asset Tag: RAM84
  Part Number: MT9HTF6472FY-53EA2
Handle 0x001B, DMI type 17, 27 bytes.
Memory Device
  Array Handle: 0x0013
  Error Information Handle: Not Provided
  Total Width: 72 bits
  Data Width: 64 bits
  Size: 2048 MB 【插槽4有1条2GB内存】
  Form Factor: DIMM
  Set: None
  Locator: DIMM30
  Bank Locator: BANK
  Type: Other
  Type Detail: Other
  Speed: 667 MHz (1.5 ns)
  Manufacturer:
  Serial Number: BZACSKZ001
  Asset Tag: RAM85
  Part Number: MT9HTF6472FY-53EA2

实践来源:
http://www.jbxue.com/LINUXjishu/10053.html
http://www.linuxsir.org/bbs/thread309696.html
http://xclinux.diandian.com/post/2013-04-16/40049844350
FreeBSD 在 RPi 2上的用户名和密码:
默认的密码是 freebsd/freebsd 和 root/root

FreeBSD系统中无线网络连接无线网卡:
http://www.111cn.net/sys/freebsd/59534.htm
本篇文章来源于 Linux公社网站(www.linuxidc.com)  原文链接:http://www.linuxidc.com/Linux/2015-12/126724.htm

FreeBSD 11-CURRENT on Raspberry Pi Apache 2.4/MySQL 5.6/PHP 5.6, 如何在树莓派 2B 上安装 FreeBSD及网络配置:
http://jackxiang.com/post/8455/

定制Raspberry Pi网站:
http://www.embest-tech.cn/pi-customization/

FreeBSD has supported Raspberry Pi since November 2012, and the current production version (FreeBSD 10) is available as a pre-built image which can be copied onto a memory card.

Download the latest image file from the official FreeBSD ARM page. This page has images for other ARM-based boards like the Beaglebone and the Pandaboard. You need to download an image for the “RPI-B”: for example “FreeBSD-10.0-RELEASE-arm-armv6-RPI-B-20140131-r260789.img.bz2”
摘自 : https://www.maketecheasier.com/freebsd-on-raspberry-pi/

DRAM:  944 MiB
WARNING: Caches not enabled
RPI 2 Model B
MMC:   bcm2835_sdhci: 0
reading uboot.env

修改raspberry pi上安装的freebsd可用内存大小:
http://blog.sina.com.cn/s/blog_a0aacb430101mj69.html


background:Freebsd是真正的Unix血统的Os,其稳定性是顶级的,真正的坚如磐石。在树莓派下也有ARM版本了,最新稳定版本:
ftp://ftp6.freebsd.org/pub/FreeBSD/snapshots/arm/armv6/ISO-IMAGES/10.0//FreeBSD-10.0-STABLE-arm-armv6-RPI-B-20140822-r270340.img.bz2  
CheckSum:
ftp://ftp6.freebsd.org/pub/FreeBSD/snapshots/arm/armv6/ISO-IMAGES/10.0/CHECKSUM.SHA256-10.0-STABLE-arm-armv6-RPI-B-20140822-r270340




三、FreeBSD 11 on Raspberri pi 2(树莓派 2 安装 FreeBSD 11)  :
A note for my own installation.(树莓派 2 安装 FreeBSD 11)
I tried compiling the FreeBSD 11 by myself, but I found there are ready-to-use systems here.
1. Identify your SD card:
# df -h
you will see the result as
de>/dev/mmcblk0p1de> or de>/dev/sdb1de> or something is different from /sda.

2. Unmount the card
# umount de>/dev/mmcblk0p1de> or de>/dev/sdb1de>

3. Copy your image file to the card, (Very important! DO NOT add the partition number p1 or 1, just use the whole card de>mmcblk0 or sdbde>)
# dd bs=4M if=your-freebsd-rpi2-image.img of=/dev/de>mmcblk0de>

4. First boot
After the raspberry pi 2 is powered on, you need login using user name : root, you need also set the password
# passwd

5.Increase swap space
# dd if=/dev/zero of=/usr/swap0 bs=1m count=1024
# chmod 0600 /usr/swap0
# echo 'md99 none swap sw,file=/usr/swap0 0 0' >> /etc/fstab
# swapon -aq

*系统目前很卡,还是不建议安装。感觉Raspbian 还是最流畅的。
来自:http://rhuta.blog.163.com/blog/static/17757006220154129421478/
阅读全文
Q: 我正在写一个unix server程序,不是daemon,经常需要在命令行上重启它,绝大多数时候工作正常,但是某些时候会报告"bind: address in use",于是重启失败。
A: Andrew Gierth
server程序总是应该在调用bind()之前设置SO_REUSEADDR套接字选项。至于TIME_WAIT状态,你无法避免,那是TCP协议的一部分。阅读全文
这个相当于windows里的启动项
vi  /etc/rc.d/rc.local
按i
然后把你的命令贴进去 ,一行一条命令
/bin/bash /usr/local/scripts/autoStartNginxEnterSSLKey.sh
然后按 esc
再 :wq 保存  注意前面有两点的冒号
下次重启的时候这个就会自动执行你添加的命令。



vi /usr/local/scripts/autoStartNginxEnterSSLKey.sh


./startNginx.sh
cat ./startNginx.sh
/usr/local/nginx/sbin/nginx

来自:http://zhidao.baidu.com/link?url=D7tZLZFqg7LODR60qIkvAeoSk-ocjBWgLppmxkHh_gSxH3AvOkZ_S9SxTj-C50espCswUiYZRK9F4JYi2nVC8K
  最近一直在看《Linux程序设计(第3版)》,照着书上的代码原封不动地敲上去,编译后就出现了à警告:隐式声明与内建函数’exit’不兼容。
警告:隐式声明与内建函数‘exit’不兼容



       原因其实很简单了,没有把stdlib.h包含进来,加上就没问题了。后来google搜索的时候发现网上很多人有这个问题,今天来记下这个问题的解决方案。

以此类推,编译后出现警告:隐式声明与内建函数’XXX’不兼容的问题所在都是因为没有包含相应的头文件,加上就OK!

来自:http://blog.csdn.net/monkey_d_meng/article/details/5565667
背景:有时在重启时出现nginx启动比sshd还快,导致加了ssh启动nginx要密码(后来去了),卡在那儿起不来,作为vps,打电话太麻烦了,于是否,能不定定个顺序,可能好一些。
  我们知道,在Linux系统中,系统服务的启动脚本一般放在/etc/init.d目录下。不同的开机模式,则分别对应到/etc/rcx.d目录下。其实/etc/rcx.d上的文件,一般都是链接到/etc/init.d目录下的对应文件的。我们还知道,/etc/rcx.d下的文件名,是以S+数字或K+数字打头的,这里的S表示启动,K表示关闭,数值其后面的数值则表示服务启动或服务退出时的次序。那么,这些数值是怎样来的呢?是不是需要在/etc/rcx.d下去修改文件名呢?答案是否定的。那应该怎么做呢?

        打开/etc/init.d下的脚本,查找类似下面的一句:

        #chkconfig: 2345 64 36

        这里的64,就是启动的顺序值,36则是退出的顺序值,如果需要改变顺序,就在这里改。然后执行下面的命令:

        #chkconfig --del servicename

        #chkconfig --add servicename

        #chkconfig servicename on



        servicename对应您的服务名称。

来自:http://blog.csdn.net/yetyongjin/article/details/7050068

实践如下:
vi /var/log/boot.log
Starting mcelog daemon
^[[60G[^[[0;32m  OK  ^[[0;39m]^MStarting php-fpm  done
Starting nginx...  done
Starting sshd: ^[[60G[^[[0;32m  OK  ^[[0;39m]^M
Starting xinetd: ^[[60G[^[[0;32m  OK  ^[[0;39m]^M
Starting MySQL^[[60G[^[[0;32m  OK  ^[[0;39m]^M

vi /etc/init.d/sshd
# chkconfig: 2345 55 25
vi /etc/init.d/nginx
# chkconfig: 2345 55 25
于是作下调整如下:
vi /etc/init.d/sshd
# chkconfig: 2345 5425
linux在启动过程中都干了些什么,都有哪些程序被调用,是不是看系统的启动日志就可以?启动日志是哪个文件?
终端运行下就知道了
dmesg | less
启动的文件日志
less /var/log/boot.log
其他日至都在/var/log里

less /var/log/boot.log
less /var/log/dmesg

http://bbs.chinaunix.net/thread-2140832-1-1.html
分页: 14/22 第一页 上页 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 下页 最后页 [ 显示模式: 摘要 | 列表 ]