- 浏览: 818149 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
yuhanwm910731:
我现在需要实现复选(非级联选择)的树形下拉菜单,麻烦发给我一份 ...
extjs3.X支持树型的下拉控件 -
shine1200:
“所以咱们现在设置的虚拟路径“/message/upload/ ...
weblogic虚拟路径的配置和使用(2) -
icefireforest:
Fangrn 写道jx_dream 写道楼主,我最近在做树形下 ...
extjs3.X支持树型的下拉控件 -
cloudfile:
谢谢分享!
c++库c#调用开发时需要注意的一点 -
xuweilinbegin:
我也要一份哦:xuweilin15353@163.com,谢谢 ...
extjs3.X支持树型的下拉控件
【过滤大log文件】
#!/bin/bash
for X in $(egrep -o "[A-Z]\w*Exception" log_week.txt | sort | uniq);
do
echo -n -e "processing $X\t"
grep -c "$X" log_week.txt
done
其中:
egrep -o 找出日志文件中出现在“Exception”字眼之前的文字,对他们排序去重
"[A-Z]\w*Exception" 用于定位Exception的正则模式
log_week.txt 大log文件
| sort 排序
| uniq 去重
for X in $(...); 针对前面生成的异常列表中的每个异常循环执行代码
echo -n -e "processing $X\t" 执行中输出
grep -c "$X" log_week.txt 在大log文件中找出这个异常出现的次数
【Crontab】
1.格式 :
M H D m w cmd
第1列M表示分钟1~59,为 * 时表示每分钟都要执行,为 a-b 时表示从第 a 分钟到第 b 分钟这段时间内要执行
第2列H表示小时1~23(0表示0点)为 */n 时表示每 n 小时个时间间隔执行一次
第3列D表示日期1~31,为 a, b, c,... 时表示第 a, b, c,... 日要执行
第4列m表示月份1~12
第5列w表示星期0~6(0表示星期天)
第6列cmd要运行的命令,程序被送入sh执行,这个shell只有USER,HOME,SHELL这三个环境变量
停止发信:
程序在执行后,系统会发email给相应用户,若不希望收到信,请在每一行空一格之后加上 “> /dev/null 2>&1” 即可
2.例子 :
#每月的4号与每周一到周三的11点重启
0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart
#在 12 月内, 每天的早上 6 点到 12 点中,每隔3个小时执行一次 /usr/bin/backup :
0 6-12/3 * 12 * /usr/bin/backup
#每月每天的午夜 0 点 20 分, 2 点 20 分, 4 点 20 分....执行 echo "haha"
20 0-23/2 * * * echo "haha"
#晚上11点到早上8点之间每两个小时,早上8点
0 23-7/2,8 * * * date
#每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点
0 11 4 * mon-wed date
3.Crontab并发冲突
有冲突:1 * * * * /usr/bin/rsync -avlR /data/files 172.16.xxx.xxx:/data
无冲突:1 * * * * flock -xn /var/run/rsync.lock -c ' rsync -avlR /data/files 172.16.xxx.xxx:/data'
-x参数指定锁文件,-n参数指定如果锁文件已经存在就等待。-c参数指定建锁成功后运行后面的命令。只要第一个flock进程没执行完,锁文件都会存在,就不会运行第二个rsync进程。
4.CentOS里安装crontab:
yum install vixie-cron
yum install crontabs
service crond start
【find命令】
-type 按文件类型查找 d目录,f文件,l链接:-type d
-user 按用户查找:-user root
-perm 按文件权限查找:-perm 755
-regex 按正则表达式查找:-regex '.*b.*3'
-amin 按访问时间查找,精确到分钟:-amin -5#找5分钟内访问过的,-amin +5#找5分钟以外访问过的
-atime 按访问时间查找,精确到天:-atime -5#找5天内访问过的,-atime +5#找5天以外访问过的
-mtime 按修改时间查找,精确到天:-mtime -5#找5天内修改过的,-mtime +5#找5天以外改过的
-maxdepth 限定查找路径深度
-size 按尺寸查,尺寸有c字节,k,M,G:-size +10000c找10000字节以上的
-exec 执行命令/-ok 同-exec,每个操作都会让用户确认
-print find ./ -mtime +3 -print | xargs rm -f –r
【删除修改时间在3天以上的文件】# find . -ctime +3 -exec rm -rf {} \;
【过滤出符合关键字的文件并删除之】# find /dir -type f -exec grep keyword {} \; -print -exec rm {} \;
【dos2unix批量转】# find -type f | xargs dos2unix -o
【找出扩展名是小写mp3的文件,拼成rm -rf “filename.ext”的格式】# find . -name "*.mp3"
-printf "rm -rf \"%p\"\n" | sed -n -e "s:\.\\::gp" > rmfile.sh
【找出扩展名是大写MP3的文件,并生成去掉文件名前4个字符的脚本,执行改名操作后清除临时文件】
# find . -name "*.MP3" -printf "ren \"%p\" \n" | sed -n -e "s:\.\\::gp" > oldfile.txt
# find . -name "*.MP3" -printf "\"%p\" \n" | sed -n -e "s:\.\\....::gp" > newfile.txt
# paste oldfile.txt newfile.txt > renfile.sh
# chmod 0777 renfile.sh
# ./renfile.sh
# rm -rf oldfile.txt newfile.txt renfile.sh
【查找比某个时间早的文件】
# touch -t 12071200 oldfile
# find /var/www/html -newer oldfile -print
# find /var/www/html/ -path “/var/www/html/_node” -prune -newer oldfile -print
【删除文件大小为0的文件】
# find ./ -size 0 -exec rm {} \;
# find ./ -size |xargs rm -f &
# rm -i `find ./ -size 0`
【一次解压多个.tar.gz文件】# find ./ -name ‘*.tar.gz’ -exec tar zxvf {} \; -print
【du命令】
1.想看当前目录下所有目录以及子目录的大小:
# du -h .
-h表示用K、M、G的人性化形式显示
2.只想看当前目录下abc目录的大小,并不想看其他目录以及其子目录:
# du -ch abc | tail -n 1
-c表示最后计算出所有所列目录的大小之和
# du -sh abc#汇总查看目录的大小
-s表示汇总
# du -h –max-depth=0 abc
–max-depth=n表示只深入到第n层目录
3.列出abc目录及其子目录下所有目录和文件的大小:
# du -ah abc
-a表示包括目录和文件
4.列出所有abc目录中的目录名不包括xyz字符串的目录的大小:
# du -h –exclude=’*xyz*’
5.想在一个屏幕下列出更多的关于abc目录及子目录大小的信息:
# du -0h abc
-0(杠零)表示每列出一个目录的信息,不换行,而是直接输出下一个目录的信息。
【lsof 列出打开的文件】
# lsof abc.txt 显示开启文件 abc.txt 的进程
# lsof -i :22 知道 22 端口现在运行什么程序
# lsof -c nsd 显示 nsd 进程现在打开的文件
# lsof -g gid 显示归属 gid 的进程情况
# lsof +d /usr/local/ 显示目录下被进程开启的文件
# lsof +D /usr/local/ 同上,但是会搜索目录下的目录,时间较长
# lsof -d 4 显示使用 fd 为4 的进程
# lsof -i [i] 用以显示符合条件的进程情况
# lsof -i[46] [protocol][@hostname|hostaddr][:service|port]
46 –> IPv4 or IPv6
protocol –> TCP or UDP
hostname –> Internet host name
hostaddr –> IPv4 位置
service –> /etc/service中的 service name (可以不止一个)
port –> 端口号(可以不止一个)
例子:
# lsof -p 12 # 看进程号为 12的进程打开了哪些文件
【sed流文本处理】
1.参数
-n 除非是明确表明要输出的行,否则不输出。一般会和-p配合使用,输出那些发生变化的行。
-f 设定包含command的文件名称
-e 执行命令,命令分为两部分,一是确定范围,二是处理方式。
确定范围:可以指定行数:例如3,5表示第3-5行;5,$表示第5行至末行;也可用模式匹配:例如/^[dD]/匹配行首不是以d或D开头的行。
处理方式:
d 表示删除匹配的行
= 表示打印行号
p 打印匹配的行
r 读取指定文件的内容
w 写入到指定文件中
a\ 在下面插入新行新内容
i\ 在上面插入新行新内容
c\ 更改当前行
n 调入匹配行的下一行
y/old/new/ 对当前行执行替换操作
执行多个命令:1.可以在命令之间使用分号,2.用多个-e
一个地址多个命令
有时,可能要指定应用到一个地址的多个命令。这在执行许多 's///' 以变换源文件中的字和语法时特别方便。要对一个地址执行多个命令,可在文件中输入 sed 命令,然后使用 '{ }' 字符将这些命令分组,如下所示:
1,20{ s/[Ll]inux/GNU\/Linux/g s/samba/Samba/g s/posix/POSIX/g }
上例将把三个替换命令应用到第 1 行到第 20 行(包括这两行)。还可以使用规则表达式地址或者二者的组合:
1,/^END/{ s/[Ll]inux/GNU\/Linux/g s/samba/Samba/g s/posix/POSIX/g p }
2.例子
【模式匹配】
sed -n -e "s:huodong\/\(.*\)\/\(.*\)\.\(.*\):hd_\1_\2\.\3:g;s:\/: :g;s:\?: :g;p"
【格式转换】
UNIX -> Windows 系统
# sed -e 's/$/\r/' myunix.txt > mydos.txt
DOS格式的文本转换成UNIX格式
# sed -e 's/.$//' dos.txt>unix.txt
【删除】
删除每行最后的两个字符
# sed 's/..$//' test (用sed '/..$/d' test为什么不行?/..$/表示匹配所有末尾含有两个字符的行)
删除每一行的前两个字符
# sed ’s/..//’ test
过滤掉#打头的行
# sed -n -e 's/^[^#]/&&/gp' filename.ext
【按单词反转行】
# sed -e '1!G;h;$!d' forward.txt > backward.txt
foo bar oni -> oni bar foo
说明:'1!G':'1G'表明'G'命令只应用于第一行,多了'!'则忽略该行,'G'命令将应用到除第一行之外的所有行。
'$!d' 命令与之类似。'$d'只把 'd'命令应用到文件中的最后一行,有了'!'之后,将把 'd' 命令应用到除最后一行之外的所有行。
'h'命令告诉 sed 将模式空间(保存正在处理的当前行的缓冲区)的内容复制到保留空间(临时缓冲区)。然后,执行 'd' 命令从模式空间中删除 "foo"。
第二行:在将 "bar" 读入模式空间之后,执行 'G' 命令,该命令将保留空间的内容 ("foo\n") 附加到模式空间
("bar\n"),使模式空间的内容为 "bar\n\foo\n"。'h' 命令将该内容放回保留空间保护起来,然后,'d' 从模式空间删除该行。
对于最后的 "oni" 行,除了不删除模式空间的内容(由于 'd' 之前的 '$!')以及将模式空间的内容(三行)打印到标准输出之外,重复同样的步骤。
【用模式来定位行范围】
# sed -n ‘/2005/,/2007/p’ mysed.txt
用/2005/来匹配行范围的首行,用/2008/来匹配行范围的最尾行。只要遇到符合要求的行尾即停止。
【读取一个特定文件的内容,将其插入到本文件指定的地方】
# sed ‘/2005/r ins.txt’ mysed.txt
【将符合条件的行写入到文件中】
# sed ‘/200[4-6]/w new.txt’ mysed.txt
【对匹配行的下一行进行处理】
# sed ‘/2004/{n;y/eijng/EIJNG/;}’ mysed.txt
# sed ‘/200/{n;y/eijng/EIJNG/;}’ mysed.txt #你可以发现,BEIJING是隔行出现的。
【sed交换任意两行】
# sed -n '2!{p;d};h;n;:1;8!{N;b1};G;h;n;p;g;p' (无法交换相邻行)
# sed -n '4!{p;d};4!{h;n;:1;4!{N;b1};G};h;n;p;g;p'
# sed '2{:a;N;9{s/\(^[^\n]*\)\(.*\)\(\n\)\([^\n]*$\)/\4\2\3\1/;t};ba}'
# sed -n 'A{h;n;x;H;x};p' (只交换相邻行)
# sed -n 'A{h;n;B!{:a;C!{N;ba};x;H;n};G};p'
【一个程序的输出接到两个程序的输入】
如果想要把一个程序的输出接到两个程序的输入,单靠 | 是不成的:
# mkfifo /tmp/fifo
# prog2 < /tmp/fifo &
# prog1 | tee /tmp/fifo | prog3
这就会把prog1 的标准输出同时给 prog2 和 prog3 的标准输入。
这里mkfifo是创建一个命名管道,这样可以有多个管道使,tee 则会把输出同时输出到一个文件和标准输出,实现了分岔。prog2 < /tmp/fifo & 这里要加个 &,不然管道里没数据 prog2就会阻塞。
【用diff比较两个命令的输出】
# mkfifo /tmp/fifo1
# mkfifo /tmp/fifo2
# ls dir1 > /tmp/fifo1 &
# ls dir2 > /tmp/fifo2 &
# diff /tmp/fifo1 /tmp/fifo2
【把一个字符串翻转】
# echo “abcdefg” | perl -lne ‘{$a = reverse($_); print $a;}’
# echo bottle|rev
【awk】
【过滤掉#号打头的行,和所有的空行】# awk ‘/^[^#]/&&/^[^$]/’ filename > new.file
【查看文件的第一列】# awk -F : ‘{print $1}’ /etc/passwd
【统计排序】# awk -F 't' '{print $4}' file.ext | grep keyword | uniq -c | sort -rn | head -10
其中:
awk -F '\t' 将file.ext文件,用TAB分割,打印第4列
grep keyword 只列出符合keyword的行
uniq -c 汇总计数
sort -rn 按数值排序
head -10 取%C
发表评论
-
提供IT系统运维支持、系统优化方案
2012-10-26 14:46 6提供IT系统运维支持、系统优化方案,有多个运维实施经验。 ... -
搭建mpi并行运算中遇到的问题与解决方案
2010-11-28 18:21 4869搭建mpi并行运算中遇到的问题与解决方案 1,[roo ... -
linux bash(2)
2010-11-10 22:29 1670十二、输入输出重定 ... -
linux bash(1)
2010-11-10 22:22 1492一、LINUX操作系统的基本结构 1 kernel、 ... -
【转载】ossec主机入侵检查系统架设
2010-09-30 09:51 1320一.OSSEC简要介绍: OSSEC 是一款开源的入 ... -
Linux多路径的使用及介绍
2010-09-25 08:37 1683多路径(multi-path)软件的介绍 普通的电脑主机都是 ... -
服务器出现broken pipe ,connection reset解决方法
2010-08-24 17:34 2926linux下webloigc经常出现broken pipe ... -
ELF文件病毒的分析和编写(转)
2010-08-11 09:46 3112这个文章是从网上搜来的,转来转去也不知道睡是原版的了,所以很抱 ... -
linux下容量不同硬盘的复制
2010-07-28 19:44 2410可以用parted magic光盘来实现 1.用part ... -
Linux 如何加快 dd 命令备份的速度呢
2010-07-28 19:36 2239增加块大小 dd if=.. of=.. bs=128k -
Linux中重定向及管道
2010-07-28 08:44 12361重定向 1.1 重定向符号 > ... -
提供j2ee中间件优化方案和实施
2010-05-11 09:04 384提供j2ee中间件安装优化方案和实施,提供oracle等数据库 ... -
从bind安装到配置全过程.所有linux平台都支持,带注释
2010-04-26 22:11 2531从安装到配置.不会架设DNS的人来.不是RPM安装的. ... -
apache前台代理分发 weblogic集群报错:错误模块 libhttpd.dll,错误地址 0x0001c0a2 解析以及解决方案
2010-04-14 22:28 35032003的报错:错误应用 程序 Apache.exe,版本 ... -
apache 启动httpd.exe 报错 Could not reliably determine the server's fully qualified
2010-04-14 20:35 2380前言:apache虽然能运行,但是看见error.log中 ... -
AIX下比较两个目录文件并同步数据,供参考
2010-03-25 13:06 1786#!/usr/bin/ksh # Compare the t ... -
check 系统账号密码是否过期shell脚本
2010-03-25 12:37 1422自己写的check aix系统用户密码是否过期的shell 脚 ... -
apache日志自动切割
2010-03-24 09:36 2209前几天给国家地震台 ... -
Remounting filesystem read-only硬盘只读,悲剧
2010-03-02 16:36 11580Dec 6 00:06:36 backup kernel: ... -
解决挂载盘柜出现“EXT3-fs error filesystem read-only”
2010-03-02 16:35 4800昨天发现盘柜上的逻辑卷只能读,不能写!,查看盘柜管理页面,无错 ...
相关推荐
《Linux高级应用PDF》是一份专为希望深入学习Linux系统的用户精心准备的教程。这份教程涵盖了Linux系统的高级应用,旨在帮助读者提升在Linux环境中的操作技能和问题解决能力。通过学习,用户不仅可以掌握Linux的基本...
该文档标题为“GNU_Linux 高级网络应用服务指南.pdf”,表明其内容主要集中在GNU/Linux系统下的高级网络应用服务,提供了详尽的指南和操作方法。 从文档提供的部分内容来看,它涉及到了Linux系统的历史背景,如提到...
Linux系统分析与高级编程技术是IT领域中一个深入且广泛的专题,涵盖了操作系统内核、程序设计、系统调用、性能优化等多个方面。本PDF文档很可能提供了关于这些主题的详尽内容,帮助读者深入理解Linux系统的工作原理...
Linux高级应用----第三章使用Linux搭建企业路由
教程可能涵盖了如何启动和关闭Linux系统,以及如何在终端中执行基本的命令,如`ls`(列出目录内容)、`cd`(切换目录)、`mkdir`(创建目录)、`rm`(删除文件或目录)等。此外,学习者还会接触到文件和目录的权限...
linux高级应用讲述 内核的编译与优化 使用Linux搭建企业防火墙 使用Linux搭建企业路由 Linux集群——负载均衡 Linux集群——双机热备及高密度计算 大型电子邮件系统解决方案 大型电子商务系统解决方案
《Linux系统应用与开发教程》是一门深入探讨Linux操作系统核心概念、使用技巧及开发实践的课程。这门课程涵盖了从基础的Linux命令行操作到高级的系统编程和服务器配置等多方面内容,旨在帮助学生全面理解和掌握Linux...
《Debian GNU/Linux高级应用大全》简介.pdf
第一部分:linux系统安装与应用操作 第一章:计算机硬件结构 第二章:linux安装 第三章:linux目录结构 第四章:linux常用命令 第五章:linux用户管理 第六章:linux服务管理 第七章:linux文件管理 第八章:linux...
Linux教程:Linux系统介绍与高级语言及管理 Linux是一种开源的操作系统,它的内核由林纳斯·托瓦兹在1991年首次发布。Linux系统以其稳定性、灵活性和自由度而闻名,广泛应用于服务器、桌面环境、移动设备以及嵌入式...
《LINUX系统分析与高级编程技术》是一本深入探讨Linux操作系统的权威著作,全面涵盖了Linux系统的核心原理和高级编程技术。这本书旨在帮助读者理解和掌握Linux系统背后的机制,从而能够进行高效的系统级编程。 1. *...
《Linux高级程序设计》这本书是针对那些希望深入理解Linux系统编程的开发者们的一份宝贵资源。它涵盖了Linux环境下的高级程序设计技术,包括系统调用、进程管理、内存管理、文件系统、网络编程以及多线程等内容。...
《Linux系统分析与高级编程技术》是一本深入探讨Linux操作系统的专著,涵盖了广泛的Linux系统知识和高级编程技术。在本书中,读者可以学习到如何有效地理解和操作Linux系统,同时提升自己的编程技能。 Linux是一种...
1 Ubuntu Server 操作系统基础知识 2 Ubuntu Server 操作系统管理命令 3 Shell 脚本语言开发与使用 4 LVM存储管理 5 网络基础知识及配置管理 6 用户安全管理 7 服务架设管理 8 系统安全管理 9 备份容灾管理 10 系统...
《LINUX系统分析与高级编程技术》是一本深入讲解Linux操作系统的权威著作,涵盖了从基础概念到高级技术的广泛内容。对于想要深入了解Linux系统、进行系统分析和高级编程的读者来说,这本书是不可或缺的资源。它总计...
通过学习这套Linux系统应用与开发教程PPT,无论是初学者还是经验丰富的开发者,都能提升自己的Linux技能,掌握从基础操作到高级开发的全方位知识。这些PPT提供了一个逐步学习的路径,从基础命令到复杂程序设计,再到...
Linux系统分析与高级编程技术是一门深入探讨Linux操作系统内部机制和高级编程技术的课程。在现代计算机科学领域,Linux系统以其开源、高效、稳定和可定制的特点,被广泛应用于服务器、桌面、嵌入式系统等多种领域。...
通过学习《Linux环境高级编程》,开发者不仅能掌握Linux系统编程的核心技术,还能对Linux操作系统的工作原理有更深入的理解,从而能够编写出更加高效、可靠的程序。无论是对于系统管理员、软件工程师还是对操作系统...
而GNULinux是包含了GNU工具集的Linux系统,整个操作系统由Linux内核加上GNU软件组成,如GCC编译器、Glibc库等。 2. **Linux的四种安装类型**: - **图形化安装**:通过图形界面进行操作,适合新手。 - **文本模式...