my blog my blog

Monthly 2月 2012
Linux死机系统救援应急处理方法之Sys Rq

 

死机啦?咋整,强制关机?也许,我们不用强制关机也可以解决哦.奶牛看网上搞服务器的大牛分享的一篇解决方案很不错.今天也给大家介绍下.

如果Linux死机了,首先我们要看桌面的反应,鼠标还动不动,键盘还能用否,如果cpu的灯一直在闪动表示正忙,估计一般没有太大问题,可以救的.ctrl+alt+F1(或F2~F6)中任意一个都可以的,系统可能反应很慢,不过应该可以进去的,然后登陆,输入用户名跟密码,然后使用top察看占用cpu最大的程序,q退出,记下程序的pid,kill pid一般就可以结束进程了.当然如果没有反应也不要着急,试试 kill 9 pid.如果还是不ok,那么只有用杀手锏Sys Rq来解决了.

SysRq 经常被称为 Magic System Request,它被定义为一系列按键组合。之所以说它神奇,是因为它在系统挂起,大多数服务已无法响应的情况下,还能通过按键组合来完成一系列预先定义 的系统操作。通过它,不但可以在保证磁盘数据安全的情况下重启一台挂起的服务器,避免数据丢失和重启后长时间的文件系统检查,还可以收集包括系统内存使 用,CPU 任务处理,进程运行状态等系统运行信息,甚至还可能在无需重启的情况下挽回一台已经停止响应的服务器。那么SysRq在哪里呢?一般的键盘上sys rq跟print screen是同一个按键,当然,键盘不同,可能分布也不相同.

大部分内核默认都是支持Sys Rq救援的,但是默认都没有开启,我们需要手动来开启.

sudo vim /etc/sysctl.conf
设置kernel.sysrq = 1启用Sys Rq救援

重启系统即可生效.如果想即时生效的话也是有办法的.

#echo "1" > /proc/sys/kernel/sysrq

启用之后我们就可以使用了.当然还是离不开tty.不过如果你是桌面系统,崩溃的时候也是可以直接用的哦,最常用的就是REISUB.这个可以让你在不丢失资料的情况下安全重启.

R – 把键盘设置为 ASCII 模式

SysRq: Keyboard mode set to XLATE

有关键盘工作模式,请参考资料中的

kbd_mode

手册。

E – 向除 init 以外所有进程发送 SIGTERM 信号

SysRq: Terminate All Tasks

因为 syslogd 本身也被结束,所以 SysRq 也许不会被记录下来。但是查看 /var/log/messages 会看到类似下面的消息:

exiting on signal 15(SIGTERM)

I – 向除 init 以外所有进程发送 SIGKILL 信号

SysRq: Kill All Tasks

与 E 类似,因为 syslogd 本身也被结束,除非 netconsole 或串口记录已打开,否则连上面的信息都无法捕捉。同时,因为 SIGKILL 是不可捕获的信号,/var/log/messages 里面也不会留下任何线索。

S – 磁盘缓冲区同步

SysRq : Emergency Sync
Emergency Sync complete

该操作会把磁盘缓冲区的数据回写,以防止数据丢失,通常会有一定延时。在能看到输出的情况下,请等到 ” Emergency Sync complete ” 过后再继续后续操作。否则,等十秒钟左右,再进行后续 SysRq 操作。

U – 重新挂载为只读模式

SysRq : Emergency Remount R/O 
 Emergency Remount complete

该操作会把磁盘重挂载为只读模式,以防止数据的损坏。与 S 类似,该操作通常也有一定延时。请等到 ” Emergency Remount complete ” 出现过后再进行后续操作,或者等候十秒钟再进行后续 SysRq 操作。

B – 立即重启系统

SysRq: Resetting

该操作会立即重启系统,比想象中要快。

如果你记不住也没有关系,在tty下可以通过alt+sys rq+H来察看帮助信息哦~~~而且都很明确.其实刚才那个reisub是busier的倒写,busier就是busy的比较级,你懂的.R-E-I-S-U-B 这个序列的推荐使用方式是:R – 1 秒 – E – 30 秒 – I – 10 秒 – S – 5 秒 – U – 5 秒 – B,而不是一气呵成地按下这六个键哦.

其实呢,sysrq是通过向/proc/sysrq-trigger发送信号来实现的.在tty下用

echo “ ? ” > /proc/sysrq-trigger

可以看到alt+sysrq+h的结果哦~~~

更多更详细的介绍可以看文章<利用 SysRq 键排除和诊断系统故障>

Linux下好用的命令行拍照程序camshot

 

今天为大家介绍一款好用的Linux下的命令行拍照程序camshot.这个程序可能并没有cheese等程序出名,但是确实相当好用.特别是直接命令行下就可以搞定拍照,可以更好的配合奶牛前几天的文章 [Linux防盗系统设计]之Arch Linux开机自动发送提醒邮件功能实现 .

有朋友问可以直接让它自动拍个照片当附件发给自己么,当然可以咯.今天奶牛就说说具体方法.

1.点此下载camshot源码

2.编译安装,cd进入目录

sudo make&&make install
没有在ubuntu下测试,不晓得apt-get可以直接安装否,不过arch linux下可以yaourt来安装.

3.安装完成后就可以使用了.

普通的拍照可以如下实现

~ $ camshot -W 160 -H 120 -o ./
Letting the camera automaticaly adjust the picture:..........Done.
Command (h for help): h

Commands:
        x       Capture a picture from camera.
        h       Prints this help.
        q       Quits the program.

Command (h for help): x
Command (h for help): q

特殊借助管道来拍照的实现:

~ $ camshot -W 320 -H 240 -p ./campipe
Letting the camera automaticaly adjust the picture:..........Done.

另开启一个终端:

~ $ cat ./campipe > /tmp/tst.bmp

然后就可以在下面的地址找到照片了 /tmp/tst.bmp.

~ $ ls /tmp/ | grep tst
/tmp/tst.bmp

结束拍照的生活ctrl+c搞定

^CCaught CTRL+C, camshot ending  

介绍结束了?no,继续介绍奶牛如何用脚步实现自动拍照功能,来帮助我们更好的实现Linux防盗系统设计]之Arch Linux开机自动发送提醒邮件功能.

脚本内容如下:

#!/bin/sh
camshot -W 320 -H 240 -p nenew_shot &
sleep 5
cat nenew_shot >camshot.bmp
kill $(ps aux |grep camshot|grep -v grep|awk -F " " '{printf $2}')

脚本任务就是先后台运行camshot,然后睡5秒让程序充分运行,然后截图,关掉进程.这样子就可以得到一张bmp的320×240的截图了.

过几天奶牛会将所以设置整理成脚本发布的.

HP Touchpad的Android 4.0正式版快来了

 

昨晚看到新闻说HP惠普公司已经将HP Touchpad的源码提供给了CM团队,这意味着Touchpad的稳定ROM即将到来,我们将告别CM 7 Alpha3.5与CM 9 Alpha0.6的悲催,迎来木有大bug的ROM,希望摄像头可以稳定工作,麦克风可以正常说话,屏幕分辨率不要存在问题,最好wifi也能再稳定一些,哈哈,继续设想…

HP Touchpad的大时代果真要来了呢,不愧是新一代刷机之王,Touchpad现在可以运行Webos,Android,Ubuntu,Arch Linux,我们还有什么更多的奢求呢,估计等Unity成熟一些的时候,把Ubuntu的Unity或者GNOME与KDE的移动版本都可以port上去,哈哈~~~尽情的狂想吧,HP Touhcpad的大时代就要来啦~~~

[Linux防盗系统设计]之Arch Linux开机自动发送提醒邮件功能实现

 

正月十四元宵节的前一天晚上,在微博上看到程序猿发的一则视频,视频讲述的是一个黑客如何追踪回一个失窃两年的电脑的故事,看后有很多感慨跟想法,与诸位分享下.首先说说思路:

  • 第一,要定位电脑的位置.我们知道,在互联网中,定位电脑最简单的方式就是ip定位.只要可以获取到ip,我们就可以判定一个人的所在具体地点或者范围(当然,如果是内网的话,只能得到一个范围),当然前提是对方并没有使用全局代理,如VPN.
  • 第二,连接主机.对于windows用户,奶牛觉得也就是3389端口开放的远程登录比较直接,然后对于linux用户呢,选择性会多很多,比如ssh或者vnc都是可行的方案.
  • 第三,搜集资料与资料备份.我们需要把自己的重要资料回传至本机,然后尽可能找到一些对方的资料,也就是搜集证据啦.
  • 第四,万事具备,抓贼啦~~~

在Linux系统下,我们首先要做的就是获取对方的ip,那么方案奶牛觉得用邮件来获取ip是最方便的.邮件?也许你正在诧异,邮件哪里会告诉别人ip哦,邮件当然会咯,而且是准确的地址哦.因为默认邮件的邮件头都被界面隐藏了,细心的朋友可以去看自己邮箱邮件的邮件头来查找发送人的ip的.在arch下,如果直接用mail命令发送邮件是没法直接发送滴.因为木有sendmail.所以奶牛就装了一个postfix,并进行了简单的配置.

sudo pacman -S postfix
sudo vim /etc/postfix/main.cf

将下面三行去除#并进行修改:

myhostname = mail.gmail.com
mydomain = gmail.com
myorigin = $mydomain
这里我们是伪造的gmail的邮箱发送邮件,当然你也可以根据需要将上面的信息进行修改.经奶牛测试,用上方的配置发送到163的邮箱是木有问题的,但是如果配置成163则会发生问题,如果发送到gmail邮箱,则建议将上述的域名替换掉,好像邮件都是对自己发来的邮件比较敏感.当然,这里建议是使用可以正常使用的邮箱,否则有可能会发生验证不通过而无法收到邮件.

sudo rc.d start postfix
:: Starting postfix daemon                                               [DONE]

表示启动postfix成功.

sudo touch /etc/nenew_mail.conf
sudo echo "This is an mail notification sent by the owner!" > /etc/nenew_mail.conf
sudo chmod 744 /etc/nenew_mail.conf

开始测试邮件发送

mail -s "test-email from the owner" < /etc/nenew_mail.conf [email protected]

将yourname替换为你的163邮箱(当然gmail也ok,但是gmail有时候会有很高的延时,具体原因未知).

去你的邮箱看下是否已经收到了邮件(在垃圾邮件中也算收到,可以自己设置白名单).如果已经顺利收到,ok,进行下一步,如果没有,将上面的参数进行调整.

既然已经把邮件发送系统配置完成,那么就剩下开机自动启动了,这里我们以写一个开机服务来完成.

sudo cp /etc/rc.d/postfix /etc/rc.d/nenew-mail
sudo vim /etc/rc.d/nenew-mail

将name=postfix修改为name=nenew-mail

将start)部分的内容修改为如下内容:

    stat_busy "Starting $name daemon"
    /usr/sbin/postfix start &>/dev/null \
    && { add_daemon $name; stat_done; } \
    || { stat_fail; exit 1; }
    sleep 600
    sudo su i -c 'mail -s "Computer Started"  < /etc/nenew_mail.conf [email protected]'
    sleep 15
    /usr/sbin/postfix stop &>/dev/null \
    && { rm_daemon $name; stat_done; } \
    || { stat_fail; exit 1; }
    ;;

其中sleep 600是开机延时600秒,为了防止电脑开机未进入网络状态就发送邮件.

sudo su i是将用户切换到i来发送这封邮件,当然,如果你的用户名是其它,完全可以用你自己的电脑用户名来替代.如果直接sudo mail来发送邮件也是可以的,但是用户名会显示[email protected]替换为你的邮箱.

修改完成后保存文件.测试服务是否正常运行

sudo rc.d start nenew-mail &

这时候让服务后台运行就可以了,为啥哩,因为我们设置了一个10分钟的延时啊,所以十分钟之后看自己的邮箱收到邮件否,如果收到了,一切正常.可以写开机启动项了.

sudo vim /etc/rc.conf

将最下面的daemon的最后加入你的启动项nenew-mail.

重启电脑,静静等待你的主机自动给你发送邮件通知就可以咯~~~放一张自己的测试效果图:

[Linux防盗系统设计]之Arch Linux开机自动发送提醒邮件功能实现 

Dropbox免费空间之最新扩容办法,最高可增加5GB空间

Dropbox——-一个很老牌的网盘,现在在测试最新的1.3.13版本的性能,采用如下方法可以免费扩容5GB

如果你是新手请点击此处注册dropbox帐号

好开始了:

下载beta版本地址:

Windows版dropbox1.3.13

linux版dropbox1.3.13

原理:

dropbox最近1.3.13 beta测试版本增加了从U盘或者其他设备搜索相片视频(wmv  jpg  jpep等格式的文件)然后上传的功能,找我们这些小白鼠测试,这是报酬。当然beta版本是否有不稳定我就不知道了,建议大家在扩容完毕装回正式版

开始了,各位:

1.准备工作是  装好上面下载的beta版本 和  在你的U盘里准备好照片或视频(我的做法是找很多个100MB的文件改为wmv后缀文件后复制进U盘,每成功上传500M容量的文件就给你增加500M免费空间,极限为5GB)

2.开启dropbox,U盘打开自动播放,如下图:

点击Import pictures and videos,桌面右下角就会出现以下图样

最后在你的dropbox文件内会多出2个新的文件夹如下图所示的前2个文件夹

audioNotepad和camerauploads

这样就可以了,然后你就可以去查看你的dropbox容量了,比如下图是我的就成功从原来的19.88GB免费空间扩容到20.38GB  20.88GB  21.38GB了

最后终于扩容到了满容量24.88GB,庆祝!!!!!

 

 

Ubuntu12.04壁纸下载

 

昨天发文介绍了最新的ubuntu12.04 alpha2的一些更新,今天看新闻说unity5.2也出来了,而且稳定性提升不少.

奶牛不废话了,今天就发下ubuntu12.04的壁纸,发现那个枫叶的壁纸听好看的说.

ubuntu12.04壁纸 下载

 

点此下载ubuntu12.04壁纸

自行提取的话可以去https://launchpad.net/ubuntu/搜索ubuntu-wallpapers包.

Ubuntu 12.04 Alpha2正式发布

 

Ubuntu12.04 alpha2已经正式发布了,大的变化奶牛并没有发现。

Ubuntu的Unity已经使用Unity 5了,整体有所提升.

内核方面,ubuntu 12.04 lts alpha2使用的是3.2.2的稳定内核。

默认浏览器firefox也升级到了firefox 10.0。

默认的邮件客户端thunderbird也升级到了10.0。

点此下载ubuntu12.04

Ubuntu Linux使用快捷键截图选定区域教程

 

在windows下,最方便的截图软件奶牛认为就是QQ,直接ctrl+alt+a就可以自定义截图了.原来在gnome2下的时候奶牛习惯用compiz的super键来作为这个区域截图,因为compiz可以单独设置的,但是到了gnome3下确实比较傻眼啦.

其实呢,方法也是有的,无非是借助快捷键绑定程序来进行截图.首先想到的scrot.虽然截图功能可以达到,但是,说实话,确实不如gnome-screenshot做的好.不绕关子了.直接说做法:

打开设置中的键盘设置,切换到快捷键,添加新的自定义快捷键.

名称随便,比如screenshot,命令gnome-screenshot -a .应用后设置其快捷键为ctrl+printscreen键.因为不知道为啥ctrl+alt+a直接设置上有的时候区域截屏失效.如果你觉得ctrl+alt+a好用,那么命令为gnome-screenshot -ai,这样子会进入一个交互界面,有一个可以选择的菜单,你可以选择截图方式.为什么直接绑定ctrl+alt+a无法用gnome-screenshot -a,奶牛也没找到原因的说,估计是快捷键的小冲突之类的吧,因为绑定为ctrl+printscreen可以正常使用.