`

OS + linux crontab / top / ntpdate / nmon

    博客分类:
  • OS
阅读更多

Redhat Linux Crontab

http://baike.baidu.com/view/1229061.htm

crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。

该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。

该词来源于希腊语 chronos(χρνο),原意是时间。

通常,crontab储存的指令被守护进程激活, crond常常在后台运行,每一分钟检查是否有预定的作业需要执行。

这类作业一般称为cron jobs。

 

crontab快速注释及撤销注释

http://blog.chinaunix.net/uid-20680669-id-3474402.html

先使用crontab -e进行对crontab的编辑操作
$ crontab -e
然后使用vi的如下编辑命令
:%s/^/#/
就可以将定时执行的任务前面都加上一个'#',进行注释掉。
同样等,某些操作完成后,也是,先进行对crontab的编辑
$ crontab -e
使用如下编辑命令
:%s/^#//
就可以讲上次所有注释的定时任务,全部撤销。

Redhat image auto download

http://lindows.iteye.com/blogs/1483469

加载Redhat Linux Crontab 列表 / 每天中午11点定时下载美食图片
[root@locahost ~]# crontab -e
# 每天10:30下载新文件index.php?mod=yugao008  
30 10 * * * wget http://weibo.cnsu****.com/index.php?mod=yugao008  
# 每天11:00根据新文件index.php?mod=yugao008匹配一定规则自动下载指定美食菜谱图片  
0 11 * * * grep 'o.jpg" class="artZoomAll"' index.php\?mod\=yugao008 | awk -F "\"" '{print $2}' > $(hostname)_$(date +%Y%m%d%H%M%S).txt | grep http $(hostname)*.txt | awk -F "txt:" '{print $2}' | sort | uniq | more | xargs -I {} wget -P /home/lindows/ {}  

Redhat backup log

http://netkiller-github-com.iteye.com/blog/1765425

循环增量备份

 

 

Bash代码  收藏代码
  1. #!/bin/bash  
  2. ###################################  
  3. # $Id: backup 379   2012 - 04 - 02   08 : 43 :42Z netkiller $  
  4. # Author: netkiller@msn.com  
  5. # Home: http://netkiller.github.com  
  6. ###################################  
  7. BACKUP_DIR=/backup/www  
  8. ####################################  
  9. LOGFILE='/var/tmp/test.log'   
  10. RSYNC="rsync"   
  11. WEEK=$(date -u +%A)  
  12. RSYNC_OPTS="-auz --delete --log-file=$LOGFILE"   
  13.   
  14. ####################################  
  15. test ! -w $BACKUP_DIR && echo "Error: $BACKUP_DIR is un-writeable."  && exit  0   
  16.   
  17. umask 0077   
  18.   
  19. for domain in $(ls -1  /www)  
  20. do  
  21.     test ! -d "$BACKUP_DIR/$domain"  && mkdir -p  "$BACKUP_DIR/$domain"   
  22.     echo "$domain:"   
  23.     for host in $(ls -1  /www/$domain)  
  24.     do  
  25.         echo " - $host"   
  26.         backup_dir=$BACKUP_DIR/$domain/$host/$WEEK  
  27.         mkdir -p ${backup_dir}  
  28.         $RSYNC $RSYNC_OPTS /www/$domain/$host/* $backup_dir  
  29.     done  
  30.   
  31. done  

 

 

 

全备份

 

 

Php代码  收藏代码
  1. #!/bin/bash  
  2. ###################################  
  3. $Id : backup 379 2012-04-02 08:43:42Z netkiller $  
  4. # Author: netkiller@msn.com  
  5. # Home: http://netkiller.github.com   
  6. ###################################  
  7. BACKUP_DIR=/backup/www  
  8. #Number of copies  
  9. COPIES=30  
  10. ####################################  
  11. TAR='tar'   
  12. RSYNC="rsync"   
  13. TIMEPOINT=$(date  -u +%Y-%m-%d)  
  14. TAR_OPTS="zcf"   
  15. ####################################  
  16. test ! -w $BACKUP_DIR  &&  echo   "Error: $BACKUP_DIR is un-writeable."  &&  exit  0  
  17.   
  18. umask 0077  
  19.   
  20. for  domain in $(ls -1 /www)  
  21. do   
  22.     test ! -d "$BACKUP_DIR/$domain"  &&  mkdir  -p  "$BACKUP_DIR/$domain"   
  23.     echo   "$domain:"   
  24.     for  host in $(ls -1 /www/ $domain )  
  25.     do   
  26.         echo   " - $host"   
  27.         backup_dir=$BACKUP_DIR / $domain / $host / $WEEK   
  28.         mkdir  -p ${backup_dir}  
  29.         $TAR   $TAR_OPTS   $BACKUP_DIR / $domain / $host / $host . $TIMEPOINT .tgz /www/ $domain / $host   
  30.     done  
  31. done  
  32. find $BACKUP_DIR  -type f -mtime + $COPIES  - delete   

 

 

RedHat top 命令详解 / top命令自动打印

192.168.134.72

文件:[root@localhost ~]# top_java.sh

内容:

#!/bin/sh  
# 用top查看java进程并自动记录到txt里  
while(true)  
do  
    top  -b -n 1 | grep java >> top_$(hostname)_$(date %Y%m%d%H%M%S).txt;  
sleep 60;  
done;

 

[root@app01 ~]# crontab -l

30 * * * * /usr/sbin/ntpdate 192.168.118.201
00 00 * * * /nmon/nmon_x86_rhel54  -f -N -m /nmon  -s 60 -c 1440
1 * * * *  /opt/IBM/WebSphere/AppServer/profiles/AppSrv01/bin/task.sh
30 * * * * /root/top.sh  

[root@app01 ~]# more top.sh

top -n 1 -b > /root/mytop/top_$(date +%H:%M:%S).txt 

top -b -Hp 494 -d 1 -n 1 > thread.$(date +%Y%m%d.%H%M%S).494.0000.txt

 (494为进程号)

top -b -Hp <pid> -d 1 -n 1 > topinfo.$(date +%Y%m%d.%H%M%S).<pid>.0000.txt ; kill -3 <pid> 

 

http://cppmule.iteye.com/blog/1731343

top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。

http://fuliang.iteye.com/blog/996119

VIRT:virtual memory usage
    1、进程“需要的”虚拟内存大小,包括进程使用的库、代码、数据等
    2、假如进程申请100m的内存,但实际只使用了10m,那么它会增长100m,而不是实际的使用量
RES:resident memory usage 常驻内存
    1、进程当前使用的内存大小,但不包括swap out
    2、包含其他进程的共享
    3、如果申请100m的内存,实际使用10m,它只增长10m,与VIRT相反
    4、关于库占用内存的情况,它只统计加载的库文件所占内存大小
SHR:shared memory
    1、除了自身进程的共享内存,也包括其他进程的共享内存
    2、虽然进程只使用了几个共享库的函数,但它包含了整个共享库的大小
    3、计算某个进程所占的物理内存大小公式:RES – SHR
    4、swap out后,它将会降下来
DATA
    1、数据占用的内存。如果top没有显示,按 f 键 可以显示出来。
    2、真正的该程序要求的数据空间,是真正在运行中要使用的。

http://fuliang.iteye.com/blog/996119

进程信息区统计信息区域的下方显示了各个进程的详细信息。首先来认识一下各列的含义。

序号 列名 含义
a PID 进程id
b PPID 父进程id
c RUSER Real user name
d UID 进程所有者的用户id
e USER 进程所有者的用户名
f GROUP 进程所有者的组名
g TTY 启动进程的终端名。不是从终端启动的进程则显示为 ?
h PR 优先级
i NI nice值。负值表示高优先级,正值表示低优先级
j P 最后使用的CPU,仅在多CPU环境下有意义
k %CPU 上次更新到现在的CPU时间占用百分比
l TIME 进程使用的CPU时间总计,单位秒
m TIME+ 进程使用的CPU时间总计,单位1/100秒
n %MEM 进程使用的物理内存 百分比
o VIRT 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
p SWAP 进程使用的虚拟内存中,被换出的大小,单位kb。
q RES 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
r CODE 可执行代码占用的物理 内存大小,单位kb
s DATA 可执行代码以外的部分(数据段+栈)占用的物理 内存大小,单位kb
t SHR 共享内存大小,单位kb
u nFLT 页面错误次数
v nDRT 最后一次写入到现在,被修改过的页面数。
w S 进程状态。
            D =不可中断的睡眠状态
            R =运行
            S =睡眠
            T =跟踪/停止
            Z =僵尸进程
x COMMAND 命令名/命令行
y WCHAN 若该进程在睡眠,则显示睡眠中的系统函数名
z Flags 任务标志,参考 sched.h

 

 

RedHat  ntpd / ntpdate 校准时间 / 调整时间

http://bbs.linuxtone.org/thread-4585-1-1.html

ntpd 是校准时间

[root@b2ccache yum.repos.d]# /usr/sbin/ntpd --version
/usr/sbin/ntpd: ntpd 4.2.2p1@1.1570-o Wed Sep  3 14:28:29 UTC 2008 (1)

ntpdate 是调整时间

[root@b2ccache yum.repos.d]# /usr/sbin/ntpdate -v
7 Sep 17:14:13 ntpdate[28826]: ntpdate 4.2.2p1@1.1570-o Wed Sep  3 14:28:30 UTC 2008 (1)
7 Sep 17:14:13 ntpdate[28826]: no servers can be used, exiting

RedHat Linux Client每10分钟自动同步192.168.10.1的RHEL机器时间

http://blueicer.blog.51cto.com/395686/116426

[root@nginxServer4 ~] # conrtab -l

0-59/10 * * * * /usr/sbin/ntpdate 192.168.10.1
1. 与一个已知的时间服务器同步
2. 配置网络时间协议(ntp)
1. 让linux自动同步时间
vi /etc/crontab
加上一句:
00 0 1 * * root rdate -s time.nist.gov
time.nist.gov 是一个时间服务器.
2. 时间服务器配置(192.168.10.1)
1). # rpm -ivh ntp-4.1.2-4.EL3.1.i386.rpm
2). # vi /etc/ntp.conf
注释一行
restrict default ignore
加入一行
restrict 192.168.10.0 mask 255.255.255.0 notrust nomodify notrap
3). # vi /etc/ntp/step-tickers
加入一行
pool.ntp.org
这样每次ntpd启动时,会自动连接该国际标准时间服务器;
4). # service ntpd start
5). # netstat -an |grep 123
确保该端口以udp方式开放
时间客户端配置(192.168.10.2)
1). # ntpdate 192.168.10.2
应该显示同步成功
2). # crond -e
加入
0-59/10 * * * * /usr/sbin/ntpdate 192.168.10.1
表示每隔10分钟同步一次时间

http://linux.chinaunix.net/techdoc/system/2009/08/30/1132834.shtml
定时对自动备份好的文件进行删除
# EDITOR=vi
# export EDITOR
# crontab -e    //添加以下一行
0 0 * * 1,2,3,4,5 /usr/bin/find /extra/bak/*.gz -ctime +10 -exec rm {} \;
以上实现,周一到周五的第天0点时,检查删除/extra/bak下所有的10天以前的所有的gz文件!

 

[root@stageserver DTS]# crontab -l
10 03 * * * sh /usr/local/DTS/cronjob.sh
10 03 * * * sh /usr/local/DTS/rmlog.sh

 

cronjob.sh

#!/bin/bash
cd /usr/local/DTS/
date_start=`date|awk -F"[ :]" '{print $4*3600 + $5*60 +$6}'`
echo `date` $date_start>>log.txt
export CLASSPATH=$CLASSPATH:/usr/local/DTS/LogTransmission.jar
/usr/local/jdk1.6.0_16/bin/java -jar LogTransmission.jar >>log.txt
date_end=`date|awk -F"[ :]" '{print $4*3600 + $5*60 +$6}'`
echo `date` $date_end>>log.txt
time=`expr "$date_end" - "$date_start"`
echo "your command take $time s" >>log.txt
echo "---------------------------" >>log.txt

 

rmlog.sh

#!/bin/bash
#2010-03-05 zouyulong
#rm old logs
#/usr/local/DTS/rmlog.sh
cd /data/ProjectDocument/DailyLog/
find . -ctime +29|xargs rm -rf
# find . -ctime +29|xargs rm -rf *.zip  ???

 

 

 

Linux 中 crontab 详解及示例

http://darkmasky.iteye.com/blog/224891

 

原文引自:http://blog.chinaunix.net/u/31547/showart_438018.html

 

cron是一个linux下的定时执行工具,可以在无需人工干预的情况下运行作业。由于Cron 是Linux的内置服务,但它不自动起来,可以用以下的方法启动、关闭这个服务:

 

/sbin/service crond start //启动服务
/sbin/service crond stop //关闭服务
/sbin/service crond restart //重启服务
/sbin/service crond reload //重新载入配置

 

你也可以将这个服务在系统启动的时候自动启动:
在/etc/rc.d/rc.local这个脚本的末尾加上:
/sbin/service crond start

现在Cron这个服务已经在进程里面了,我们就可以用这个服务了,Cron服务提供以下几种接口供大家使用:

 

1、直接用crontab命令编辑

 

cron服务提供crontab命令来设定cron服务的,以下是这个命令的一些参数与说明:

crontab -u //设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数
crontab -l //列出某个用户cron服务的详细内容
crontab -r //删除某个用户的cron服务
crontab -e //编辑某个用户的cron服务


比如说root查看自己的cron设置:crontab -u root -l
再例如,root想删除fred的cron设置:crontab -u fred -r
在编辑cron服务时,编辑的内容有一些格式和约定,输入:crontab -u root -e
进入vi编辑模式,编辑的内容一定要符合下面的格式:*/1 * * * * ls >> /tmp/ls.txt

这个格式的前一部分是对时间的设定,后面一部分是要执行的命令,如果要执行的命令太多,可以把这些命令写到一个脚本里面,然后在这里直接调用这个脚 本就可以了,调用的时候记得写出命令的完整路径。时间的设定我们有一定的约定,前面五个*号代表五个数字,数字的取值范围和含义如下:

 

分钟 (0-59)
小時 (0-23)
日期 (1-31)
月份 (1-12)
星期 (0-6)//0代表星期天

 

除了数字还有几个个特殊的符号就是"*"、"/"和"-"、",",*代表所有的取值范围内的数字,"/"代表每的意思,"*/5"表示每5个单位,"-"代表从某个数字到某个数字,","分开几个离散的数字。以下举几个例子说明问题:

每天早上6点

0 6 * * * echo "Good morning." >> /tmp/test.txt //注意单纯echo,从屏幕上看不到任何输出,因为cron把任何输出都email到root的信箱了。

每两个小时

0 */2 * * * echo "Have a break now." >> /tmp/test.txt

晚上11点到早上8点之间每两个小时,早上八点

0 23-7/2,8 * * * echo "Have a good dream:)" >> /tmp/test.txt

每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点

0 11 4 * 1-3 command line

1月1日早上4点

0 4 1 1 * command line

每次编辑完某个用户的cron设置后,cron自动在/var/spool/cron下生成一个与此用户同名的文件,此用户的cron信息都记录在 这个文件中,这个文件是不可以直接编辑的,只可以用crontab -e 来编辑。cron启动后每过一份钟读一次这个文件,检查是否要执行里面的命令。因此此文件修改后不需要重新启动cron服务。

2、编辑/etc/crontab 文件配置cron

cron服务每分钟不仅要读一次/var/spool/cron内的所有文件,还需要读一次/etc/crontab,因此我们配置这个文件也能运 用 cron服务做一些事情。用crontab配置是针对某个用户的,而编辑/etc/crontab是针对系统的任务。此文件的文件格式是:

SHELL=/bin/bash

PATH=/sbin:/bin:/usr/sbin:/usr/bin

 

MAILTO=root      //如果出现错误,或者有数据输出,数据作为邮件发给这个帐号

HOME=/    //使用者运行的路径,这里是根目录

# run-parts

01 * * * * root run-parts /etc/cron.hourly //每小时执行/etc/cron.hourly内的脚本
02 4 * * * root run-parts /etc/cron.daily //每天执行/etc/cron.daily内的脚本
22 4 * * 0 root run-parts /etc/cron.weekly //每星期执行/etc/cron.weekly内的脚本
42 4 1 * * root run-parts /etc/cron.monthly //每月去执行/etc/cron.monthly内的脚本

大家注意"run-parts"这个参数了,如果去掉这个参数的话,后面就可以写要运行的某个脚本名,而不是文件夹名了。

--------------------------------------
基本格式 :
*  *  *  *  *  command
分 时 日 月 周 命令

第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令

 

crontab文件的一些例子:

 

30 21 * * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每晚的21:30重启lighttpd 。

 

45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每月1、10、22日的4 : 45重启lighttpd 。

 

10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每周六、周日的1 : 10重启lighttpd 。

 

0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示在每天18 : 00至23 : 00之间每隔30分钟重启lighttpd 。

 

0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每星期六的11 : 00 pm重启lighttpd 。

* */1 * * * /usr/local/etc/rc.d/lighttpd restart
每一小时重启lighttpd

 

* 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart
晚上11点到早上7点之间,每隔一小时重启lighttpd

 

0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart
每月的4号与每周一到周三的11点重启lighttpd

 

0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart
一月一号的4点重启lighttpd

日志查询方法

http://www.iteye.com/topic/620950

关于查找zip日志文件里关键字的搜索

[root@stageserver DTS]# find . -name '*.zip'| xargs -I {} zipgrep '20:17:19:274' {}|more

 

压缩文件直接查看查找  zcat zmore zless   zgrep   zdiff   vi    

 

http://blog.chinaunix.net/u3/103972/showart.php?id=2178838

关键字附近的信息 zgrep -A 或 -B 或 -C或 -E  string file.gz  (-A after -B before -C 上下都取 -E 正则

关键字之间的信息 sed  -n '/string1/,/string2/'  file

最初一段  sed -n '1,np'  file

最后一段  tail -n  n file,  tail -f file

压缩文件直接查看、查找  : zcat ,zmore, zless   zgrep   zdiff   vi     。

这是单个压缩文件,如果是压缩的目录呢?  zipgrep

 zipgrep -C3  'Send sms failed!' log0423_03_00.zip|more              

zipgrep -C3  -C和数字之间无空格

grep -l ‘关键字’    只显示包括关键字的文件  grep -n 显示行号

压缩 gzip , zip desfile.zip sourcefile

增加或修改压缩包内的文件   zip -r product.zip product//opmn.xml

解压缩 unzip -x(排除)  只解压某些文件 unzip file.zip somefileforunziplist

cp 如果遇到nfs共享目录尽量使用绝对路径

搜索历史命令 history|grep -E 'grep|sed|more|tail'

先grep搜索大一点范围的内容到文件再到此文件仔细找具体内容

 


linux系统运维常用命令

http://blogold.chinaunix.net/u3/107531/showart_2113630.html

1. 删除 0 字节文件
find -type f -size 0 -exec rm -rf {} \;

2.
查看进程
按内存从大到小排列
ps -e   -o "%C   : %p : %z : %a"|sort -k5 -nr

3.
cpu 利用率从大到小排列
ps -e   -o "%C   : %p : %z : %a"|sort   -nr

4.
打印说 cache 里的 URL
grep -r -a   jpg /data/cache/* | strings | grep "http:" | awk -F'http:' '{print "http:"$2;}'

5.
查看 http 的并发请求数及其 TCP 连接状态

netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'


6. sed -i '/Root/s/no/yes/' /etc/ssh /sshd_config   sed
在这个文里 Root 的一行,匹配 Root 一行,将 no 替换 yes.

7.1. 如何杀掉 mysql 进程:
ps aux |grep mysql |grep -v grep  |awk '{print $2}' |xargs kill -9 (
从中了解到 awk 的用途 )

killall -TERM mysqld

kill -9 `cat /usr/local/apache2/logs/httpd.pid`  
试试查杀进程
PID

8.
显示运行 3 级别开启的服务
:
ls /etc/rc3.d/S* |cut -c 15-   (
从中了解到 cut 的用途,截取数据
)

9.
如何在编写 SHELL 显示多个信息,用
EOF
cat << EOF
+--------------------------------------------------------------+
|       === Welcome to Tunoff services ===                |
+--------------------------------------------------------------+
EOF

10. for
的巧用 ( 如给 mysql 建软链接
)
cd /usr/local/mysql/bin
for i in *
do ln /usr/local/mysql/bin/$i /usr/bin/$i
done

11.
IP 地址:

ifconfig eth0 |grep "inet addr:" |awk '{print $2}'|cut -c 6-  
或者

ifconfig   | grep 'inet addr:'| grep -v '127.0.0.1' | cut -d: -f2 | awk '{ print $1}'

12.
内存的大小 :
free -m |grep "Mem" | awk '{print $2}'

13.
netstat -an -t | grep ":80" | grep ESTABLISHED | awk '{printf "%s %s\n",$5,$6}' | sort

14.
查看 Apache 的并发请求数及其 TCP 连接状态:

netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

15.
因为同事要统计一下服务器 下面所有的 jpg 的文件的大小 , 写了个 shell 给他来统计 . 原来用 xargs 实现 , 但他一次处理一部分 , 搞的有多个总和 ...., 下面的命令 就能解决啦 .
find / -name *.jpg -exec wc -c {} \;|awk '{print $1}'|awk '{a+=$1}END{print a}'

CPU
的数量(多核算多个 CPU cat /proc/cpuinfo |grep -c processor )越多,系统 负载越低,每秒能处理的请求数也越多。


---------------------------------------------------------------------------------------
16   CPU
负载    # cat /proc/loadavg
检查前三个输出值是否超过了系统逻辑 CPU 4 倍。
  

18   CPU
负载
   #mpstat 1 1
检查 %idle 是否过低 ( 比如小于
5%)

19  
内存空间
   # free
检查 free 值是否过低    也可以用
# cat /proc/meminfo

20   swap
空间
   # free
检查 swap used 值是否过高    如果 swap used 值过高,进一步检查 swap 动作是否频繁:

# vmstat 1 5
观察 si so 值是否较大

21  
磁盘空间    # df -h
检查是否有分区使用率 (Use%) 过高 ( 比如超过 90%)   如发现某个分区空间接近用尽,可以进入该分区的挂载点,用以下命令找出占用空间最多的文件或目录:

# du -cks * | sort -rn | head -n 10

22  
磁盘 I/O 负载    # iostat -x 1 2
检查 I/O 使用率 (%util) 是否超过
100%

23  
网络负载
   # sar -n DEV
检查网络流量 (rxbyt/s, txbyt/s) 是否过高


24  
网络错误    # netstat -i
检查是否有网络错误 (drop fifo colls carrier)   也可以用命令:
# cat /proc/net/dev

25
网络连接数目
   # netstat -an | grep -E “^(tcp)” | cut -c 68- | sort | uniq -c | sort -n

26  
进程总数
   # ps aux | wc -l
检查进程个数是否正常 ( 比如超过
250)

27  
可运行进程数目
   # vmwtat 1 5
列给出的是可运行进程的数目,检查其是否超过系统逻辑 CPU 4


28  
进程    # top -id 1
观察是否有异常进程出现


29  
网络状态    检查 DNS, 网关等是否可以正常连通

30  
用户    # who | wc -l
检查登录用户是否过多 ( 比如超过 50 )   也可以用命令:
# uptime

31  
系统日志
   # cat /var/log/rflogview/*errors
检查是否有异常错误记录    也可以搜寻一些异常关键字,例如:

# grep -i error /var/log/messages
# grep -i fail /var/log/messages

32  
核心日志    # dmesg
检查是否有异常错误记录


33  
系统时间    # date
检查系统时间是否正确


34  
打开文件数目    # lsof | wc -l
检查打开文件总数是否过多


35  
日志    # logwatch –print   配置 /etc/log.d/logwatch.conf ,将 Mailto 设置为自己的 email 地址,启动 mail 服务 (sendmail 或者 postfix ) ,这样就可以每天收到日志报告了。
缺省 logwatch 只报告昨天的日志,可以用 # logwatch –print –range all 获得所有的日志分析 结果。
可以用 # logwatch –print –detail high 获得更具体的日志分析结果 ( 而不仅仅是出错日志 )

36.
杀掉 80 端口相关的进程
lsof -i :80|grep -v "PID"|awk '{print "kill -9",$2}'|sh

37.
清除僵死进程。
ps -eal | awk '{ if ($2 == "Z") {print $4}}' | kill -9

38.tcpdump
抓包 ,用来防止 80 端口被人攻击时可以分析数据
# tcpdump -c 10000 -i eth0 -n dst port 80 > /root/pkts

39.
然后检查 IP 的重复数 并从小到大排序 注意 "-t\ +0"   中间是两个空格
# less pkts | awk {'printf $3"\n"'} | cut -d. -f 1-4 | sort | uniq -c | awk {'printf $1" "$2"\n"'} | sort -n -t\ +0

40.
查看有多少个活动的 php -cgi 进程
netstat -anp | grep php-cgi | grep ^tcp | wc -l

chkconfig --list | awk '{if ($5=="3:on") print $1}'

41.kudzu 查看网卡型号
kudzu --probe --class=network

匹配中文字符的正则表达式: [\u4e00-\u9fa5]
评注:匹配中文还真是个头疼的事,有了这个表达式就好办了

匹配双字节字符 ( 包括汉字在内 ) [^\x00-\xff]
评注:可以用来计算字符串的长度(一个双字节字符长度计 2 ASCII 字符计 1

匹配空白行的正则表达式: \n\s*\r
评注:可以用来删除空白行

匹配 HTML 标记的正则表达式: <(\S*?)[^>]*>.*?</\1>|<.*? />
评注:网上流传的版本太糟糕,上面这个也仅仅能匹配部分,对于复杂的嵌套标记依旧无能为力

匹配首尾空白字符的正则表达式: ^\s*|\s*$
评注:可以用来删除行首行尾的空白字符 ( 包括空格、制表符、换页符等等 ) ,非常有用的表达式

匹配 Email 地址的正则表达式: \w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
评注:表单验证时很实用

匹配网址 URL 的正则表达式: [a-zA-z]+://[^\s]*
评注:网上流传的版本功能很有限,上面这个基本可以满足需求

匹配帐号是否合法 ( 字母开头,允许 5-16 字节,允许字母数字下划线 ) ^[a-zA-Z][a-zA-Z0-9_]{4,15}$
评注:表单验证时很实用

匹配国内电话号码: \d{3}-\d{8}|\d{4}-\d{7}
评注:匹配形式如 0511-4405222 021-87888822

匹配腾讯 QQ 号: [1-9][0-9]{4,}
评注:腾讯 QQ 号从 10000 开始

匹配中国邮政编码: [1-9]\d{5}(?!\d)
评注:中国邮政编码为 6 位数字

匹配身份证: \d{15}|\d{18}
评注:中国的身份证为 15 位或 18

匹配 ip 地址: \d+\.\d+\.\d+\.\d+

评注:提取 ip 地址时有用

匹配特定数字:
^[1-9]\d*$
    // 匹配正整数
^-[1-9]\d*$
  // 匹配负整数
^-?[1-9]\d*$
   // 匹配整数
^[1-9]\d*|0$
  // 匹配非负整数(正整数 + 0
^-[1-9]\d*|0$
   // 匹配非正整数(负整数 + 0
^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$
   // 匹配正浮点数
^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$
  // 匹配负浮点数
^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$
  // 匹配浮点数
^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$
   // 匹配非负浮点数(正浮点数 + 0
^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$
   // 匹配非正浮点数(负浮点数 + 0
评注:处理大量数据时有用,具体应用时注意修正

匹配特定字符串:
^[A-Za-z]+$
   // 匹配由 26 个英文字母组成的字符串
^[A-Z]+$
   // 匹配由 26 个英文字母的大写组成的字符串
^[a-z]+$
   // 匹配由 26 个英文字母的小写组成的字符串
^[A-Za-z0-9]+$
   // 匹配由数字和 26 个英文字母组成的字符串
^\w+$
   // 匹配由数字、 26 个英文字母或者下划线组成的字符串
评注:最基本也是最常用的一些表达式

 

end

  • 大小: 14.9 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics