存档

‘Linux’ 分类的存档

在Linux系统下清除操作信息的记录

2013年7月7日 没有评论

Linux下如在终端里或是在文本方式操作时,只要按上下光标键可以快速调用以前的命令,
可是这样其他人用同样的用户登录后也同样知道你的操作了。另外在Linux图形界面中,
如GNOME,在面板的菜单上有打开最近文档这一选项,列出了最近的用户的所有使用的文件。
如何清理这两种属性呢?

1)该属性分别归于不同的用户,只有相同的用户登录后才能使用以上的属性。
2)每个用户的根目录下有两个隐藏文件:.bash_history和.recently-used。
前者记录了所有终端和文本方式中使用过的命令;后者记录所访问过的文件。
3)通过上面的介绍可以知道,只要将用户目录下面这两个文件清空就可以清除
以上记录了。如本人的机器常用root登录(一个很不好的习惯),
只要在/etc/rc.d/rc.local文件中加上以下两句就可以了:

>/root/.bash_history
>/root/.recently-used

Linux批量添加IP方法,绑定1个c或是多个连续ip的办法

2013年6月15日 没有评论

我们平时在windows的网卡中绑定ip地址相当方便要一个个输入或是用命令绑定,方法请详见之前的文章:windows 批量添加IP的方法
Linux这么批量添加IP?Centos如何快速绑定多个IP?正常我们知道的方式是建立多个网卡的别名如eth0:0或eth0:1等等。但这样有一个问题,就是太过麻烦。如果要绑定100个或是200多个ip地址,会建立文件建立到手软。可否做到一个配置文件即可?答案是肯定的。
linux也是很人性化的。比如我们有时客户需要增加多个ip地址。如1个c段256个ip地址。那么我们按以下办法操作即可:

可以在/etc/sysconfig/network-scripts下创建一个range文件
在ssh下打入命令: vi /etc/sysconfig/network-scripts/ifcfg-eth0-range0

1
2
3
4
5
6
7
8
9
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR_START=10.0.0.111
IPADDR_END=10.0.0.119
CLONENUM_START=0
GATEWAY=10.0.0.1
NETMASK=255.255.255.000
NO_ALIASROUTING=yes

其中:
IPADDR_START 是起始IP地址,
IPADDR_END 是结束IP地址,
CLONENUM_START 是起始IP别名网卡名(本例中是 eth0:0)
然后重启网络服务让IP生效: service network restart

netmask 子网掩码 参考表:
/29 (5 usable) NETMASK = 255.255.255.248
/28 (13 usable) NETMASK = 255.255.255.240
/27 (29 usable) NETMASK = 255.255.255.224
/26 (61 usable) NETMASK = 255.255.255.192
/25 (125 usable) NETMASK = 255.255.255.128
/24 (253 usable) NETMASK = 255.255.255.0

本例在linux centos各版本中测试通过。

关于Linux系统网卡流量Tx和Rx的意思详解

2013年6月2日 没有评论

在linux环境系统下,经常我们在用软件查看网卡流量的时候分不太清楚tx和rx的分别。
其实正常来解释:
tx是发送(transport),rx是接收(receive)。以debain系统为例子。比如你的外网网卡,wan,rx是wan接受ISP的传输数据, 即下载速度。wan的tx,是工作站经ros wan网卡向isp上传的速度,既上传速度。内网网卡lan的rx,应该是ros接受来之内网工作站的上传,既是上传速度。tx是lan网卡传给工作站的速度,即工作站经内网网卡下载的速度 (debain)。tx rx 每个版本都不一样的。而且相对于外网和内网的解释又是相反的你就记住一般RX外网指的是下载,TX指的是上传而内网相反就行了
下例是我们使用bwm-ng软件查看的相关网卡的流量情况。

tap150i0等网卡显示的 Rx和Tx 就是表示 : Rx 出流量 Tx 进流量 上面eth0相反。

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
 bwm-ng v0.6 (probing every 0.500s), press 'h' for help
  input: /proc/net/dev type: rate
  |         iface                   Rx                   Tx                Total
  ==============================================================================
               lo:          33.96 Kb/s           33.96 Kb/s           67.92 Kb/s
             eth0:        4734.80 Kb/s         4469.48 Kb/s         9204.28 Kb/s
            vmbr0:          37.96 Kb/s           60.48 Kb/s           98.43 Kb/s
           venet0:           0.00 Kb/s            0.00 Kb/s            0.00 Kb/s
         tap150i0:           8.92 Kb/s            8.08 Kb/s           16.99 Kb/s
         tap108i0:           0.00 Kb/s            0.00 Kb/s            0.00 Kb/s
         tap102i0:           0.00 Kb/s            0.00 Kb/s            0.00 Kb/s
         tap107i0:          10.29 Kb/s           12.34 Kb/s           22.63 Kb/s
         tap101i0:         149.11 Kb/s          147.53 Kb/s          296.64 Kb/s
         tap117i0:           0.00 Kb/s            0.00 Kb/s            0.00 Kb/s
         tap118i0:         114.99 Kb/s          136.64 Kb/s          251.63 Kb/s
         tap155i0:           0.00 Kb/s            0.00 Kb/s            0.00 Kb/s
         tap120i0:           0.00 Kb/s            0.00 Kb/s            0.00 Kb/s
         tap121i0:           0.00 Kb/s            0.00 Kb/s            0.00 Kb/s
         tap116i0:           0.00 Kb/s            0.00 Kb/s            0.00 Kb/s
         tap113i0:        1519.50 Kb/s         1403.32 Kb/s         2922.82 Kb/s
         tap112i0:         565.15 Kb/s          566.64 Kb/s         1131.79 Kb/s
         tap149i0:           0.00 Kb/s            0.00 Kb/s            0.00 Kb/s
         tap119i0:           0.00 Kb/s            0.00 Kb/s            0.00 Kb/s
         tap160i0:           0.00 Kb/s            0.00 Kb/s            0.00 Kb/s
         tap100i0:         678.86 Kb/s          636.36 Kb/s         1315.22 Kb/s
         tap103i0:        1282.07 Kb/s         1263.13 Kb/s         2545.21 Kb/s
         tap128i0:          79.09 Kb/s           83.12 Kb/s          162.21 Kb/s
  ------------------------------------------------------------------------------
            total:        9214.69 Kb/s         8821.09 Kb/s        18035.78 Kb/s

ssh连接的时候出现Host key verification failed.

2013年5月1日 没有评论

今天在服务器上执行远程操作命令出现以下的问题:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[root@www ~]# ssh 192.168.1.**
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
3c:2a:3a:d5:ae:2b:76:52:*:*.
Please contact your system administrator.
Add correct host key in /root/.ssh/known_hosts to get rid of this message.
Offending key in /root/.ssh/known_hosts:20
RSA host key for 192.168.1.** has changed and you have requested strict checking.
Host key verification failed.

解决方法:
在正在操作的机器上执行

1
vi ~/.ssh/known_hosts

进入此目录,删除的192.168.1.**相关rsa的信息即可.
或者删除这个文件

1
2
cd ~/.ssh/
rm known_hosts

linux(centos)绑定ARP的方法

2013年4月16日 没有评论

ARP协议是“Address Resolution Protocol”(地址解析协议) 的缩写。在局域网中,网络中实际传输的是“帧”,帧里面是有目标主机的MAC地址的。在以太网中,一个主机要和另一个主机进行直接通信,必须要知道目标主 机的MAC地址。但这个目标MAC地址是如何获得的呢?它就是通过地址解析协议获得的。所谓“地址解析”就是主机在发送帧前将目标IP地址转换成目标 MAC地址的过程。ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。

而ARP攻击就是通过伪造IP地址和MAC地址实现ARP欺骗,能够在网络中产生大量的ARP通信量使网络阻塞,攻击者只要持续不断的发出伪造的ARP响应包就能更改目标主机ARP缓存中的IP-MAC条目,造成网络中断或中间人攻击。

ARP攻击主要是存在于局域网网络中,局域网中若有一台计算机感染ARP木马,则感染该ARP木马的系统将会试图通过“ARP欺骗”手段截获所在网络内其它计算机的通信信息,并因此造成网内其它计算机的通信故障。

在工作中经常遇到有服务器受到ARP欺骗攻击,严重影响了网络的正常运营,于是想到将网关的ARP条目进行绑定。

本文是关于linux服务器下arp网关的绑定

1、查看网关的arp信息
[root@Vtest ~]# arp
Address HWtype HWaddress Flags Mask Iface
192.168.1.103 ether 00:16:ea:27:7b:04 C eth0
192.168.1.1 ether 40:16:9f:6c:39:1e C eth0

说明:
Address: 主机的IP地址
Hwtype: 主机的硬件类型
Hwaddress:主机的硬件地址
Flags Mask:记录标志,”C”表示arp高速缓存中的动态条目,”CM”表示静态的arp条目。

我们需要绑定的就是192.168.1.1所在的一行。

2、建立一个静态IP –>>mac对应的文件
[root@Vtest ~]#echo ’192.168.1.1 40:16:9f:6c:39:1e’>>/etc/ip-mac

3、设置开机自动绑定

arp信息重启后会清空,所以需要开机的时候自动绑定。服务器启动过程最后运行的脚本是rc.local,我们把绑定的命令就加到这个文件的最后一行。

[root@Vtest ~]#echo ‘arp -f /etc/ip-mac’ /etc/rc.local

4、手动绑定一下
[root@Vtest ~]#echo arp -f /etc/ip-mac

[root@Vtest ~]#arp -s 192.168.1.1 40:16:9f:6c:39:1e
5、验证
[root@Vtest ~]# arp -a
(192.168.1.103) at 00:16:ea:27:7b:04 [ether] on eth0
(192.168.1.1) at 40:16:9f:6c:39:1e [ether] PERM on eth0
[root@Vtest ~]# arp
Address HWtype HWaddress Flags Mask Iface
192.168.1.103 ether 00:16:ea:27:7b:04 C eth0
192.168.1.1 ether 40:16:9f:6c:39:1e CM eth0

从以上显示的信息来看,已经绑定成功了,第一个命令结果中的”PERM”表示Permanent,永久的意思,即绑定成永久arp条目。到这里绑定就完成了,你的网关arp绑定了么,为了稳定运行,赶快绑定吧。

6、这只能防住一些arp攻击,如果将网内所有ip mac导入ethers文件,能有效的防止arp攻击
安装nmap:

rpm -vhU http://nmap.org/dist/nmap-6.25-1.i386.rpm
rpm -vhU http://nmap.org/dist/zenmap-6.25-1.noarch.rpm
rpm -vhU http://nmap.org/dist/ncat-6.25-1.i386.rpm
rpm -vhU http://nmap.org/dist/nping-0.6.25-1.i386.rpm
扫描同网段所有ip
nmap -sP 192.168.1.0/24 2>&1 | tee ip.log
扫描,结果我的arp表里就有那个网段所有机器的mac,将所有信息复制至/etc/ip-mac文件

使用htaccess实现域名跳转

2013年3月31日 没有评论

要使用域名的统一,即使得vps12.com转向www.vps12.com,有很多办法,听说对于seo也有些好处!

1
2
3
RewriteEngine on
RewriteCond %{HTTP_HOST} ^vps12.com [NC]
RewriteRule ^(.*)$ http://www.vps12.com/$1 [L,R=301]

还可以利用重定向功能实现url的跳转,例如:

1
2
3
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.abc.com [NC]
RewriteRule ^(.*)$ http://www.vps12.com/$1 [L,R=301]

KVM快照管理(转)

2013年3月25日 没有评论

######## 注意:对KVM快照进行管理需要在关机机状态下 ###########
说明:
kvm默认的文件格式是raw,也就是使用文件来模拟实际的硬盘(当然也可以使用一块真实的硬盘或一个分区),不过raw格式只支持内存快照(就是启动的时候加-snapshot,所有更改都写到内存),重启之后就没了。raw格式不支持磁盘快照,因此要使用qcow或qcow2文件格式。

1. 查看镜像文件格式
[root@PLASPACSHCN14 images]# qemu-img info EBS-6.img
image: EBS-6.img
file format: raw
virtual size: 300G (322122547200 bytes)
disk size: 300G
说明: 现在的文件格式是raw,需要转换成qcow2格式。

2. 转换文件格式(把raw转换成qcow2格式)
[root@PLASPACSHCN14 images]# cd /var/lib/libvirt/images
[root@PLASPACSHCN14 images]# qemu-img convert -f raw -O qcow2 EBS-6.img EBS-6_qcow2.img

3. 查看当前目录下的文件:
[root@PLASPACSHCN14 images]# ls
EBS-3.img EBS-6.img EBS-6_qcow2.img EBS-7.img
[root@PLASPACSHCN14 images]# du -sh *
301G EBS-3.img
301G EBS-6.img
2.5G EBS-6_qcow2.img
2.5G EBS-6-qcow2.img
401G EBS-7.img
说明:可见,多出来了个文件EBS-6_qcow2.img。

4. 为虚拟机创建快照:
4.1 一定不要开机快照!
首先需要关闭虚拟机,然后按照下面的命令进行快照。最后恢复快照的时候先关机在恢复。
[root@PLASPACSHCN14 images]# qemu-img snapshot -c snapshot01 EBS-6_qcow2.img
说明: qemu-img snapshot -c snapshot01 EBS-6_qcow2.img
命令 快照参数 参数 快照的命令 镜像的名字,(为那个镜像创建的快照)

5. 列出镜像的所有快照
[root@PLASPACSHCN14 images]# qemu-img snapshot -l EBS-6_qcow2.img
Snapshot list:
ID TAG VM SIZE DATE VM CLOCK
1 snapshot01 0 2012-12-27 14:53:07 00:00:00.000

6. 恢复快照:
[root@PLASPACSHCN14 images]# qemu-img snapshot -a snapshot01 EBS-6_qcow2.img
说明:qemu-img snapshot -a snapshot01 EBS-6_qcow2.img
命令 快照命令 快照参数 快照名称 镜像名称

7. 删除快照:
[root@PLASPACSHCN14 images]# qemu-img snapshot -d snapshot01 EBS-6_qcow2.img
说明: qemu-img snapshot -d snapshot01 EBS-6_qcow2.img
命令 命令参数 命令参数 快照名称 镜像名称
8. 后记:
使用KVM时很复杂的,还是选择Vmware能方便一些,对于快照这块,需要提前创建qcow格式的镜像文件:qemu-img create -f qcow2 vdisk.img 50G,然后再进入图形化进行系统安装。(快照最好使用virsh创建快照,qemu-img快照出来的文件只是0KB,所以建议使用virsh快照。)

kvm快照应用 (转载)

kvm也具有快速恢复的方法,前提是必须处于关机状态才可以执行,否则会出现各种莫名其妙的问题

创建镜像:
qemu-img snapshot -c initial smokeping_falcon_test0917.qcow2
恢复镜像:
qemu-img snapshot -a initial smokeping_falcon_test0917.qcow2
删除镜像
qemu-img snapshot -d initial smokeping_falcon_test0917.qcow2
状态查看
qemu-img snapshot -l smokeping_falcon_test0917.qcow2

创建前的大小
[root@smokeping]# ll
total 7578488
-rw-r–r– 1 root root 171825168384 Sep 17 17:01 smokeping_falcon_test0917.xml
-rw-r–r– 1 root root 171825168384 Sep 17 16:01 smokeping_falcon_test_187.qcow2
-rw-r–r– 1 root root 171825168384 Sep 6 11:14 smokeping_falcon_test.qcow2
以下是创建后的文件
[root@smokeping]# ll
total 7603284
-rw-r–r– 1 qemu qemu 171850530816 Sep 17 17:22 smokeping_falcon_test0917.qcow2
-rw-r–r– 1 root root 171825168384 Sep 17 16:01 smokeping_falcon_test_187.qcow2
-rw-r–r– 1 root root 171825168384 Sep 6 11:14 smokeping_falcon_test.qcow2

查看镜像方法1
[root@smokeping]# qemu-img info smokeping_falcon_test0917.qcow2
image: smokeping_falcon_test0917.qcow2
file format: qcow2
virtual size: 160G (171798691840 bytes)
disk size: 2.2G
cluster_size: 65536
Snapshot list:
ID TAG VM SIZE DATE VM CLOCK
1 initial 0 2012-09-17 17:08:49 00:00:00.000
查看镜像方法2
[root@smokeping]# qemu-img snapshot -l smokeping_falcon_test0917.qcow2
Snapshot list:
ID TAG VM SIZE DATE VM CLOCK
1 initial 0 2012-09-17 17:08:49 00:00:00.000

利用这个镜像,可以迅速还原服务器状态,使用空间也不大。

实测中,若虚拟机为启动状态制作快照,恢复后会无法载入系统,关闭服务器,再次启动,服务器直接崩溃。

scp断点续传和wget自动断点续传的方法

2013年3月23日 没有评论

1. scp断点续传
scp一旦出错中断就只能重新开始,不过可以利用rsync实现scp的断点续传
1、在~/.bashrc中加入一个alias:
$vim ~/.bashrc
alias rscp=’rsync -v -P -e ssh’
2、重新载入.bashrc配置
$source ~/.bashrc

2. wget自动断点续传的方法
有时候我们使用wget下载东西被迫打断, 比如网络故障, 终端意外断开, 忘了加”&”放入该台等等.
沉稳的人或许会想到重新开启wget, 并使用 -c断点续传, 可是有时候, 因为N个g的东西突然断了, 一冲动就晕了, 就纠结了, 可能就会就重新跑wget了, 甚至截止到本文还有人不知道-c.
那么为了杯具不再发生, 我们可以让wget每次运行的时候自动加上 -c参数, 那样就万事大吉了嘛. 方法如下:
在家目录下新建文件”.wgetrc”, 内容如下:
continue = on
写入wget.sh后,可以这样同时下载多个文件:
1.nohup wget http://www.vps12.com/software/db_must.tar.gz &
2.nohup wget http://www.vps12.com/software/root_must.tar.gz &
3.nohup wget http://www.vps12.com/software/webserver_must.tar.gz &
如果想不用IP,但有两个相同的域名,则需要配置/etc/hosts加和IP对应的域名,再Wget即可。
保存退出, 以后再使用wget就会自动断点续传了。

利用Shell脚本来监控Linux系统的负载、CPU、内存、硬盘、用户登录数

2013年3月5日 没有评论

利用Shell脚本来监控Linux系统的负载、CPU、内存、硬盘、用户登录数。

这几天在学习研究shell脚本,写的一些系统负载、CPU、内存、硬盘、用户数监控脚本程序。在没有nagios监控的情况下,只要服务器能上互联网,就可通过发邮件的方式来提醒管理员系统资源的使用情况。

一、编写linux系统告警邮件脚本

1
# vim /scripts/sys-warning.sh
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
#!/bin/bash
#监控系统负载与CPU、内存、硬盘、登录用户数,超出警戒值则发邮件告警。
 
#提取本服务器的IP地址信息
IP=`ifconfig eth0 | grep "inet addr" | cut -f 2 -d ":" | cut -f 1 -d " "`
 
# 1、监控系统负载的变化情况,超出时发邮件告警:
 
#抓取cpu的总核数
cpu_num=`grep -c 'model name' /proc/cpuinfo`
 
#抓取当前系统15分钟的平均负载值
load_15=`uptime | awk '{print $12}'`
 
#计算当前系统单个核心15分钟的平均负载值,结果小于1.0时前面个位数补0。
average_load=`echo "scale=2;a=$load_15/$cpu_num;if(length(a)==scale(a)) print 0;print a" | bc`
 
#取上面平均负载值的个位整数
average_int=`echo $average_load | cut -f 1 -d "."`
 
#设置系统单个核心15分钟的平均负载的告警值为0.70(即使用超过70%的时候告警)。
load_warn=0.70
 
#当单个核心15分钟的平均负载值大于等于1.0(即个位整数大于0) ,直接发邮件告警;如果小于1.0则进行二次比较
if (($average_int > 0)); then
echo "$IP服务器15分钟的系统平均负载为$average_load,超过警戒值1.0,请立即处理!!!" | mutt -s "$IP 服务器系统负载严重告警!!!" test@126.com
else
 
#当前系统15分钟平均负载值与告警值进行比较(当大于告警值0.70时会返回1,小于时会返回0 )
load_now=`expr $average_load \> $load_warn`
 
#如果系统单个核心15分钟的平均负载值大于告警值0.70(返回值为1),则发邮件给管理员
if (($load_now == 1)); then
echo "$IP服务器15分钟的系统平均负载达到 $average_load,超过警戒值0.70,请及时处理。" | mutt -s "$IP 服务器系统负载告警" test@126.com
fi
 
fi
 
# 2、监控系统cpu的情况,当使用超过80%的时候发告警邮件:
 
#取当前空闲cpu百份比值(只取整数部分)
cpu_idle=`top -b -n 1 | grep Cpu | awk '{print $5}' | cut -f 1 -d "."`
 
#设置空闲cpu的告警值为20%,如果当前cpu使用超过80%(即剩余小于20%),立即发邮件告警
if (($cpu_idle < 20)); then
echo "$IP服务器cpu剩余$cpu_idle%,使用率已经超过80%,请及时处理。" | mutt -s "$IP 服务器CPU告警" test@126.com
fi
 
# 3、监控系统交换分区swap的情况,当使用超过80%的时候发告警邮件:
 
#系统分配的交换分区总量
swap_total=`free -m | grep Swap | awk '{print $2}'`
 
#当前剩余的交换分区free大小
swap_free=`free -m | grep Swap | awk '{print $4}'`
 
#当前已使用的交换分区used大小
swap_used=`free -m | grep Swap | awk '{print $3}'`
 
if (($swap_used != 0)); then
#如果交换分区已被使用,则计算当前剩余交换分区free所占总量的百分比,用小数来表示,要在小数点前面补一个整数位0
swap_per=0`echo "scale=2;$swap_free/$swap_total" | bc`
 
#设置交换分区的告警值为20%(即使用超过80%的时候告警)。
swap_warn=0.20
 
#当前剩余交换分区百分比与告警值进行比较(当大于告警值(即剩余20%以上)时会返回1,小于(即剩余不足20%)时会返回0 )
swap_now=`expr $swap_per \> $swap_warn`
 
#如果当前交换分区使用超过80%(即剩余小于20%,上面的返回值等于0),立即发邮件告警
if (($swap_now == 0)); then
echo "$IP服务器swap交换分区只剩下 $swap_free M 未使用,剩余不足20%,使用率已经超过80%,请及时处理。" | mutt -s "$IP 服务器内存告警" test@126.com
fi
 
fi
 
# 4、监控系统硬盘根分区使用的情况,当使用超过80%的时候发告警邮件:
 
#取当前根分区(/dev/sda3)已用的百份比值(只取整数部分)
disk_sda3=`df -h | grep /dev/sda3 | awk '{print $5}' | cut -f 1 -d "%"`
 
#设置空闲硬盘容量的告警值为80%,如果当前硬盘使用超过80%,立即发邮件告警
if (($disk_sda3 > 80)); then
echo "$IP 服务器 /根分区 使用率已经超过80%,请及时处理。" | mutt -s "$IP 服务器硬盘告警" test@126.com
fi
 
#5、监控系统用户登录的情况,当用户数超过3个的时候发告警邮件:
 
#取当前用户登录数(只取数值部分)
users=`uptime | awk '{print $6}'`
 
#设置登录用户数的告警值为3个,如果当前用户数超过3个,立即发邮件告警
if (($users >= 3)); then
echo "$IP 服务器用户数已经达到$users个,请及时处理。" | mutt -s "$IP 服务器用户数告警" test@126.com
fi
1
# chmod a+x /scripts/sys-warning.sh

二、加入任务计划:每十分钟检测一次,有告警则立即发邮件(十分钟发一次)。

1
2
3
# crontab -e
*/10 * * * *  /scripts/sys-warning.sh 
# service crond restart

三、要实现服务器能够发邮件,须开启Sendmail服务或是安装linux下面的一个邮件客户端msmtp软件(类似于一个foxmail的工具)

1、下载安装:http://downloads.sourceforge.net/msmtp/msmtp-1.4.16.tar.bz2?modtime=1217206451&big_mirror=0

1
2
3
4
5
# tar jxvf msmtp-1.4.16.tar.bz2
# cd msmtp-1.4.16
# ./configure --prefix=/usr/local/msmtp
# make
# make install

2、创建msmtp配置文件和日志文件(host为邮件域名,邮件用户名test,密码123456)

1
2
3
4
5
6
7
8
9
10
# vim ~/.msmtprc
account default  
host 126.com
from test@126.com
auth login
user test
password 123456
logfile ~/.msmtp.log
# chmod 600  ~/.msmtprc
# touch ~/.msmtp.log

3、mutt安装配置:(一般linux下有默认安装mutt)

1
2
3
4
5
6
7
set sendmail="/usr/local/msmtp/bin/msmtp"
set use_from=yes
set realname="memory"
set from=test@126.com
set envelope_from=yes
set rfc2047_parameters=yes
set charset="utf-8"

4、邮件发送测试(-s邮件标题)   # echo “邮件内容123456″ | mutt -s “邮件标题测试邮件”   test@126.com

解决vi在ubuntu及其他unix等系统中使用不正常的方法

2013年2月26日 没有评论

解决ubuntu中vi不能正常使用方向键与退格键的问题

方案一:
问题:
ubuntu中vi在编辑状态下方向键不能用,还有回格键不能删除等我们平时习惯的一些键都不能使用。

解决办法:
可以安装vim full版本,在full版本下键盘正常,安装好后同样使用vi命令。
安装vim:
ubuntu预装的是vim tiny版本,而需要的是vim full版本。执行下面的语句安装vim full版本:
$sudo apt-get remove vim-common
$sudo apt-get install vim
这样就行了,vim是一款优秀的软件,可以在运用中体会到。

方案二:
在vi命令行使用命令“:set nocompatible”,就是设置vi不使用兼容模式。

ubuntu11.10下的VI命令:
vi 有三种模式,输入模式,编辑模式,“:”命令模式
vi 进入以后默认是编辑模式
vi 编辑模式默认的快捷键 上下左右分别是 J K H L
vi 在编辑模式使用 i 可以进入输入模式
vi 输入模式只能输入英文,默认不能使用上下左右箭头
vi 输入模式用Esc可以返回到编辑模式
vi 编辑模式 Shift + ; 可以进入命令模式
vi 命令模式w保存,q退出

1)对所有用户都有效,解决系统中所用用户的vi中文乱码问题

sudo gedit /etc/vim/vimrc.tiny

加入如下内容:

#该文件的内容显示如下:

” Encoding related

set encoding=UTF-8

set langmenu=zh_CN.UTF-8

language message zh_CN.UTF-8

set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1

set fileencoding=utf-8
2)只对当前用户有效的解决方法

ubuntu默认在当前用户的家目录下,没有.vimrc文件,这个时候可以自己touch一个.vimrc文件,且在其中加入 www.2cto.com

#该文件的内容显示如下:

” Encoding related

set encoding=UTF-8

set langmenu=zh_CN.UTF-8

language message zh_CN.UTF-8

set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1

set fileencoding=utf-8