date 命令使用小技巧

十一月 24th, 2008 xiao H Posted in shell No Comments »

前两天在做为squid 做日志截断时零时学习了一下 date 命令的使用,这里做个小纪录

//昨日时间
date +%Y%m%d -d “-1 day”
//明日时间
date +%Y%m%d -d “+1 day”
//一月之间
date +%Y%m%d -d “-30 day”

标签:

用 !$ 防止误操作

十一月 1st, 2008 xiao H Posted in shell 1 Comment »

作者:galeki 原文地址:http://www.linuxgem.org/posts/5769.html

shell 的通配符匹配非常强大,不过也非常危险,不少同学都碰到这样的问题,比如 rm a*,结果一个手抖,a 和星号之间多了个空格,结果目录下的文件都灰飞烟灭了……

bash 支持一个特殊的变量 !$,永远保存着前一条命令的最后一个参数,例如:

$ echo hello world
hello world
$ echo !$
world

标签:

我常用的小shell

七月 4th, 2008 xiao H Posted in shell, 系统管理 No Comments »

下面是我平常用的一些bash shell 组合,方便我的日常管理。
清除所有arp 缓存

arp -n|awk '/^[1-9]/ {print "arp -d "$1}'|sh

显示打开连接数前10个机子的IP 和连接数

cat /proc/net/ip_conntrack | cut -d ' ' -f 10 | cut -d '=' -f 2 | sort | uniq -c | sort -nr | head -n 10

绑定已知机子的arp 地址

cat /proc/net/arp | awk '{print $1 " " $4}' |sort -t. -n +3 -4 > /etc/ethers

批量重命名

ls dirname | awk '{printf"mv %s file_%06d\n",$0,i++}' | sh

Per脚本实现eth0挂起后自动重启

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#!/usr/bin/perl -w
 
$fail_count = 0;
$cmd_result = '';
 
$cmd_result = `ping -w 4 61.130.107.193 |grep packet`;
 
if ($cmd_result =~ /100% packet loss/) {
$fail_count++;
if ($fail_count > 5) {
`ifdown eth0`;
`ifup eth0`;
} else {
$fail_count = 0;
}
}

自动从apnic记录中分离出网通,电信IP 段

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
#!/bin/sh
FILE=/root/ip.txt
rm -f $FILE
wget http://ftp.apnic.net/apnic/stats/apnic/delegated-apnic-latest -O $FILE
grep 'apnic|CN|ipv4|' $FILE | cut -f 4,5 -d'|'|sed -e 's/|/ /g' | while read ip cnt
do
echo $ip:$cnt
mask=$(cat < < EOF | bc | tail -1
pow=32;
define log2(x) {
if (x<=1) return (pow);
pow--;
return(log2(x/2));
}
log2($cnt)
EOF)
echo $ip/$mask>> cn.net
NETNAME=`whois $ip@whois.apnic.net | sed -e '/./{H;$!d;}' -e 'x;/netnum/!d' |grep ^netname | sed -e 's/.*:      \(.*\)/\1/g' | sed -e 's/-.*//g'`
case $NETNAME in
CNC)
echo $ip/$mask >> CNCGROUP
;;
CHINANET|CNCGROUP)
echo $ip/$mask >> $NETNAME
;;
CHINANET|CNCGROUP)
echo $ip/$mask >> $NETNAME
;;
CHINATELECOM)
echo $ip/$mask >> CHINANET
;;
*)
echo $ip/$mask >> OTHER
;;
esac
done

去掉文件中的注释和空格

cat filename grep -v '^$' | grep -v '^#' > newfile

标签:

sed 总结

五月 13th, 2008 xiao H Posted in shell, 精品文档 No Comments »

作者:zleil
################################################################
#[0]:  基础                                                                                            #
################################################################
**sed执行过程:
   a. 如果已到达文件尾,goto e;否则,用当前行内容替换模式空间的内容(即缓冲区,还有一个缓冲区:后备空间);
   b. 执行命令序列,命令只对模式空间有效;
   c. 当前行号加1
   d. goto a;
   e. 退出
注: 当前行号可由命令N或n更改,当前行号最初为第1行
    执行命令时,如果该命令有地址前缀,那么看*当前行号*是否与地址前缀相符,相符则执行,否则不执行

标签:

Linux下用批量convert管理图片

五月 5th, 2008 xiao H Posted in shell No Comments »

今天在整理妮妮在医院拍的照片,想挑几张放到妮妮的blog 上去,结果发现原图都好大2240×1488 的分辨率,文件大小都在1M 左右,这样的图放上去显然是太大了,并且所有的图都是横着的每次看都要旋转270°  才行,于是乎就想找个工具批量编辑一下。搜索了一圈还是觉得用Image MagicK 是convert 最好。

具体方法如下:

标签:,

Sed学习笔记

五月 5th, 2008 xiao H Posted in shell, 精品文档 No Comments »

1. Sed简介

sed 是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有 改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。以下介绍的是Gnu版本的Sed 3.02。

标签:

sed思维导图

三月 8th, 2008 xiao H Posted in shell 1 Comment »

对学习sed 非常有帮助,不知是哪个牛人画的,致敬!

查看sed思维导图

标签:

Shell 和 Shell Script基础

三月 8th, 2008 xiao H Posted in shell, 精品文档 3 Comments »

或许,许多人都已经听过 shell 或 bash 这些名字,但不知道您是否知道它们究竟是什么东东呢?

先回到电脑基础常识上吧:所有的电脑都是由硬体和软体构成的,硬体就是大家能摸得着看得见的部份,例如:键盘、荧幕、CPU、记忆体、硬碟、等等。离开了硬体,所谓的电脑是不存在的,因为整个系统的输入和输出以及运算都离不开硬体。请问:如果没有键盘和荧幕您是怎样使用电脑的?但是,您透过键盘进行的输入,以及从荧幕看到的输出,真正发挥功能的,是软体的功劳。而直接负责和这些硬体进行沟通的软体,就是所谓的核心(kernel),kernel 必须能够接管键盘的输

该日志未加标签

几个有用的bash shell组合

三月 7th, 2008 xiao H Posted in shell No Comments »

ps aux | awk '{ if ($3 &gt; 8 ) print $2}'

这个是列出cpu 占有率高于 8% 的进程的PID

cat /proc/net/arp | awk '{print $4 $1}' &gt;&gt;/etc/ethers

读取当前机器arp 表并把得到的mac 地址和相应的ip 地址添加到/etc/ethers 文件中去

标签:,


Page 2 of 3123