热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

OS+linuxcrontab/linuxjob/ntpdate/chrony.conf/chronyc

s定时任务固定格式:分钟小时一月的天数月份一周的天数分钟小时一月的天数月份一周的天数备注0-590-231-311-120-7(表示周天) 1、每天晚上20点整

s

定时任务固定格式:

分钟  小时  一月的天数  月份  一周的天数





















分钟小时一月的天数月份一周的天数备注
0-590-231-311-120-7(表示周天) 

1、每天晚上20点整自动执行

0 20 * * * /opt/路径执行文件

2、一周1,3,5晚上20点整执行

0 20 * * 1,3,5 /opt/路径执行文件

3、每周周1~周5晚20点整执行

0 20 * * 1-5 /opt/路径执行文件

4、一周内每2天,晚上20点整执行

0 20 * * */2 /opt/路径执行文件

 

 

Centos 8 crontab 

[root@lindows ~]#  cat /etc/chrony.conf

server 10.27.126.249 iburst

 

[root@lindows ~]# crontab -l
30 * * * * /usr/bin/chronyc sources

 

注:docker 依赖宿主机的时钟源 server 10.244.13.33 iburst

 

 

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命令自动打印

问题1:linux中top查看进程,进程详细信息显示不全

解决1:[root@centos8 yum.repos.d]# top -c -bw 500, 其中-bw是设置宽度的

 

文件:[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

-d 1 -n 1 > topinfo.$(date +%Y%m%d.%H%M%S).

.0000.txt ; kill -3

 

 

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

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












































































































































序号列名含义
aPID进程id
bPPID父进程id
cRUSERReal user name
dUID进程所有者的用户id
eUSER进程所有者的用户名
fGROUP进程所有者的组名
gTTY启动进程的终端名。不是从终端启动的进程则显示为 ?
hPR优先级
iNInice值。负值表示高优先级,正值表示低优先级
jP最后使用的CPU,仅在多CPU环境下有意义
k%CPU上次更新到现在的CPU时间占用百分比
lTIME进程使用的CPU时间总计,单位秒
mTIME+进程使用的CPU时间总计,单位1/100秒
n%MEM进程使用的物理内存 百分比
oVIRT进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
pSWAP进程使用的虚拟内存中,被换出的大小,单位kb。
qRES进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
rCODE可执行代码占用的物理 内存大小,单位kb
sDATA可执行代码以外的部分(数据段+栈)占用的物理 内存大小,单位kb
tSHR共享内存大小,单位kb
unFLT页面错误次数
vnDRT最后一次写入到现在,被修改过的页面数。
wS进程状态。
            D =不可中断的睡眠状态
            R =运行
            S =睡眠
            T =跟踪/停止
            Z =僵尸进程
xCOMMAND命令名/命令行
yWCHAN若该进程在睡眠,则显示睡眠中的系统函数名
zFlags任务标志,参考 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 < +--------------------------------------------------------------+
|       === 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*?)[^>]*>.*?|<.*? />
评注:网上流传的版本太糟糕,上面这个也仅仅能匹配部分,对于复杂的嵌套标记依旧无能为力

匹配首尾空白字符的正则表达式: ^\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

 



推荐阅读
  • 本文详细介绍了如何在Linux系统(以CentOS为例)上彻底卸载Zimbra邮件系统,包括停止服务、删除文件和用户等步骤。 ... [详细]
  • 本文介绍了 Linux 系统中用于定期执行任务的 cron 服务及其配置方法。通过 crond 和 crontab 命令,用户可以轻松地安排系统和用户级别的周期性任务。 ... [详细]
  • Crontab 是 Linux 系统中用于设置定时任务的强大工具。为了高效地管理和使用 Crontab,首先需要编写相应的 Shell 脚本来定义具体的任务逻辑。此外,还需要对 Crontab 进行适当的配置,以确保任务能够按时准确地执行。本文将详细介绍如何编写和管理 Crontab 定时任务,包括常见的配置选项和最佳实践,帮助用户提高任务调度的效率和可靠性。 ... [详细]
  • 在 CentOS 6.7 系统维护中,常用的巡检命令包括:`uname -a` 用于查看内核、操作系统和 CPU 信息;`head -n 1 /etc/issue` 用于查看操作系统的版本;`cat /proc/cpuinfo` 用于获取详细的 CPU 信息;`hostname` 用于显示当前主机名;`ls` 命令则用于列出目录内容。这些命令可以帮助系统管理员快速了解系统的运行状态和配置信息,确保系统的稳定性和安全性。 ... [详细]
  • 为了确保iOS应用能够安全地访问网站数据,本文介绍了如何在Nginx服务器上轻松配置CertBot以实现SSL证书的自动化管理。通过这一过程,可以确保应用始终使用HTTPS协议,从而提升数据传输的安全性和可靠性。文章详细阐述了配置步骤和常见问题的解决方法,帮助读者快速上手并成功部署SSL证书。 ... [详细]
  • 本文深入解析了Linux系统中常用的文件和目录操作命令,包括但不限于`ls`、`cd`等。通过详细讲解每个命令的功能、语法及应用场景,帮助读者掌握这些基本工具的使用方法,提升在Linux环境下的操作效率。此外,文章还介绍了如何结合选项和参数来实现更复杂的文件管理任务,为初学者提供了丰富的实践示例和技巧。 ... [详细]
  • PHP预处理常量详解:如何定义与使用常量 ... [详细]
  • `chkconfig` 命令主要用于管理和查询系统服务在不同运行级别中的启动状态。该命令不仅能够更新服务的启动配置,还能检查特定服务的当前状态。通过 `chkconfig`,管理员可以轻松地控制服务在系统启动时的行为,确保关键服务正常运行,同时禁用不必要的服务以提高系统性能和安全性。本文将详细介绍 `chkconfig` 的各项参数及其使用方法,帮助读者更好地理解和应用这一强大的系统管理工具。 ... [详细]
  • Linux Shell变量初探:初始值解析与使用指南
    本文探讨了Linux Shell中变量的基本概念及其在BASH中的应用。变量是用于存储可变数据的标识符,能够代表不同的值。文章详细介绍了BASH shell的主要优势,包括强大的命令编辑能力、自动补全功能、命令别名设置、作业控制以及前后台任务管理。此外,还涵盖了编程脚本编写和通配符的使用方法,为初学者提供了全面的指导。 ... [详细]
  • 技术日志:Ansible的安装及模块管理详解 ... [详细]
  • 在项目开发过程中,掌握一些关键的Linux命令至关重要。例如,使用 `Ctrl+C` 可以立即终止当前正在执行的命令;通过 `ps -ef | grep ias` 可以查看特定服务的进程信息,包括进程ID(PID)和JVM参数(如内存分配和远程连接端口);而 `netstat -apn | more` 则用于显示网络连接状态,帮助开发者监控和调试网络服务。这些命令不仅提高了开发效率,还能有效解决运行时的各种问题。 ... [详细]
  • 如何在Linux系统中利用crontab定时执行Shell脚本任务?
    在Linux系统中,如何实现定时执行任务脚本?在服务器日常运维过程中,经常需要定期执行某些任务,例如数据库备份、日志文件切割等。通过使用crontab工具,可以轻松配置这些周期性任务,确保它们按时自动运行,提高系统管理效率和可靠性。 ... [详细]
  • 深入解析:RKHunter与AIDE在入侵检测中的应用与优势
    本文深入探讨了RKHunter与AIDE在入侵检测领域的应用及其独特优势。通过对比分析,详细阐述了这两种工具在系统完整性验证、恶意软件检测及日志文件监控等方面的技术特点和实际效果,为安全管理人员提供了有效的防护策略建议。 ... [详细]
  • 在Docker容器中,尽管crontab服务已启动且定时任务能够成功添加,但任务却未能如期执行。本文探讨了这一问题的原因,并提出了有效的解决方案与优化策略,确保定时任务在容器环境中稳定运行。 ... [详细]
  • 本文深入探讨了 HTML 中的 `margin` 属性,详细解析了其基本特性和应用场景。文章不仅介绍了 `margin` 的基本概念,还重点讨论了垂直外边距合并现象,并分析了 `margin` 在块级元素与内联元素中的不同表现。通过实例和代码示例,帮助读者全面理解 `margin` 的使用技巧和常见问题。 ... [详细]
author-avatar
oyy8610406
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有