热门标签 | 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系统的透明防火墙(网桥模式),以实现灵活的时间段控制、流量限制等功能。通过详细的步骤和配置说明,确保内部网络的安全性和稳定性。 ... [详细]
  • 本文介绍了如何在Django项目中使用django-crontab库来设置和管理定时任务,包括安装、配置、编写定时任务以及常见问题的解决方案。通过具体实例,帮助开发者快速掌握在Django中实现自动化任务的方法。 ... [详细]
  • 本文详细介绍了在Linux环境下如何有效地管理任务,包括撤销操作、挂起与恢复任务、终止后台程序以及取消定时任务的方法。这些技巧对于提高日常工作效率和系统维护至关重要。 ... [详细]
  • 本文探讨了在Unix/Linux环境下,如何有效地管理和运行长期或无限期运行的Python进程。文章不仅提供了关于进程崩溃后的处理方法,还讨论了使用Cron和Inetd等工具来优化进程管理的策略。 ... [详细]
  • Linux Crontab 定时任务管理指南
    本文详细介绍了在Linux系统中如何编辑、查看和删除Crontab定时任务,以及解决定时任务可能遇到的问题。 ... [详细]
  • 本文介绍了如何在 Linux 系统中使用 Cron 进行任务调度,包括查看日志、显示和编辑用户任务列表的方法,以及重启 Cron 服务的具体操作。 ... [详细]
  • 本文将详细介绍如何利用PHP进行实时监控及信息查看,包括PHP版本信息、Linux服务器状态以及客户端请求记录等。 ... [详细]
  • 本文介绍了如何在Windows x86环境下使用VS2017编译器,通过GN工具生成配置并利用Ninja构建系统成功构建Chromium的Cronet组件。 ... [详细]
  • 本文详细介绍了 Java 中 com.amazonaws.auth.SystemPropertiesCredentialsProvider 初始化方法的使用方式,并提供了多个实际的代码示例,帮助开发者更好地理解和应用这一方法。 ... [详细]
  • 深入理解Quartz:Java定时任务框架详解
    Quartz是一个功能强大的调度库,适用于各种规模的应用程序。本文将详细介绍Quartz的基本概念、配置方法以及如何在Java项目中使用Quartz来管理定时任务。 ... [详细]
  • 本文探讨了Java中实现定时任务的几种常见方式,包括java.util.Timer、ScheduledExecutorService以及Spring Task,并对每种方法进行了详细的代码示例和优缺点分析。 ... [详细]
  • 本文详细介绍Linux中的cut命令,包括其基本功能、参数使用方法及应用场景。cut命令允许用户从文件中提取特定列或字符,支持多种分隔符。 ... [详细]
  • php写定时器避免内存泄露的方法
    小编给大家分享一下php写定时器避免内存泄露的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大 ... [详细]
  • 探讨在使用OmniSecure Web服务器与phpMyAdmin时遇到的问题,特别是关于HTTP_HOST变量未定义的错误。 ... [详细]
  • 腾讯视频 Node.js 服务国庆阅兵直播高并发实战
    本文分享了腾讯视频团队在国庆阅兵直播项目中,如何利用Node.js服务成功应对2.38亿次观看的高并发挑战。文章将从服务架构、可用性保障、缓存策略、日志与告警等方面详细解析。 ... [详细]
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社区 版权所有