工作,学习,生活,这里将会有一些记录. 备用域名:http://meisw.wdlinux.cn 注册 | 登陆
浏览模式: 标准 | 列表全部文章

find 手册

find相关命令和参数的相关说明

 find - 在目录层次中寻找文件
参数说明:
-daystart 
                从今天也不从24小时之前开始计量时间(对 -amin,
                 -atime, -cmin, -ctime, -mmin, 和-mtime有效)。

        -depth
                先搜索目录的内容再搜索目录本身。

        -follow
                不检索符号链接。意即 -noleaf。

               


        -help, --help
                列出find的命令行用法的概要,然后返回

        -maxdepth levels
                在命令行下目录的最大深度级别(非负整数),'-maxdepth 0'
                意味着只在命令行参数中应用检测和事件。

        -mindepth levels
                小于指定数字(非负整数)的深度级别的目录层次将不应用检
                测和事件。'-mindepth 1'意味着除了当前的命令行参数外
                将搜索所有的文件。
       
        -mount
                在其它文件系统中不进入目录。

        -noleaf
                不优化假如某一个目录里包含少于两个以下的子目录。这个选
                项在那些不遵循UNIX文件系统链界约定的文件系统中用,像
                CD-ROM,MS-DOS或AFS卷加载点上。在UNIX文件系统中,每个
                目录有至少两个硬链接,它的名字和'.'。它的子目录(假如有)
                各自有一个'..'链接到它本身。在FIND检索一个目录时,在统
                计其子目录少于两个,意味着将不需要在进行下去了。只需要
                检索一下这个目录名;这在检索速度上是个有意义的提高。

        -version, --version
                显示FIND的版本号,终止程序。

        -xdev 在其它文件系统中不进入目录。
说明:
        用下边的格式可以指定数字参数

        +n      比n大。
        -n      比n小。
        n       恰好是n。



        -amin n
                文件最后一次访问是在n分钟前。

        -anewer file
                文件最后访问时间比指定的file修改时间更晚。 -anewer会
                受到-follow的影响当在命令行中-follow在-anewer之前时。

        -atime n
                文件最后一次访问是n*24小时前。

        -cmin n
                文件的状态的改变是在n分钟前。

        -cnewer file
                文件状态的改变比指定的file状态的改变时间更晚。-cnewer
                会受到-follow的影响当命令行中-follow在-cnewer之前时。

        -ctime n
                文件状态的改变时间是在n*24小时前。

        -empty 文件是空的,它是一个正规的文件或目录。

        -false  总是假。

        -fstype type
                文件是type类型。在不同的unix系统中有多种不同的文件系
                统类型。在一些不同版本的unix中有效的文件类型有:ufs,
                 4.2, 4.3, nfs, tmp, mfs, S51k, S52k.你可以用
                -printf加上%F指示来看你的文件系统的类型。

        -gid n 文件的数字型组ID是n.

        -group gname
                文件属于组gname(允许数字型的gname).

        -ilname pattern
                 同-lname, 但是匹配是大小些不区分的.

        -iname pattern
                同-name,但是匹配是大小些不区分的。举个例子,这个通配符
                'fo*'和'f??'匹配文件名'Foo', 'FOO', 'foo', 'fOo',等
                等。

        -inum n
                文件的i结点数是n.
     


        -ipath pattern
                同 -path, 但是匹配大小写不区分。

        -iregex pattern
                同 -regex, 但是匹配大小写不区分.

        -links n
                文件有n个链结。

        -lname pattern
                文件是个符号链结内容匹配shell通配符pattern。元字符
                '/'或'.'不能区别对待。

        -mmin n
                文件的数据最后一次被编辑是在n分钟前.

        -mtime n
                文件的数据最后一次被编辑是在n*24小时前.

        -name pattern
                基本的文件名(起始的目录已经检测过了)匹配shell通配符
                pattern.元字符('*', '?', 和'[]')不能匹配一个以'.'
                开头的文件名。忽略在它下边的目录或文件,用-prune;参看
                -path描述中的例子。

        -newer file
                文件最后编辑时间比指定的file晚
                -newer会受到-follow的影响当在命令行中-follow在-newer
                之前时。

        -nouser
                没有用户符合文件的数字型用户ID.

        -nogroup
                没有组符合文件的数字型组ID.

        -path pattern
                文件名匹配shell通配符pattern.元字符不能区分'/'和'.';
                因此,像例子

                        find . -path './sr*sc'

                将列出一个目录条目'./src/misc'(假如它存在的话).
                忽略整个目录树,用-prune比检测树中的每一个文件要好一
                些。举个例子,跳过'src/emacs'和它下边的所有文件,列出
                其它发现的文件,执行下边的命令:

                        find . -path './src/emacs' -prune -o -print



                             



        -perm mode
                文件的访问权限位恰好是mode(八进制或符号).符号模式用
                模式0做为开始。

        -perm -mode
                文件的所有访问权限位mode都设了。

        -perm +mode
                文件的一些访问权限位mode设了。

        -regex pattern
                文件匹配规则的表达式通配符。这是一个在整个路径中的
                匹配,而不是一个检索。举个例子,匹配一个'./fubar3'
                文件名的文件,你应该用规则的表达式'.*bar.'或'.*b.*3',
                 而不是'b.*r3'.

        -size n[bckw]
                文件占用n个单元空间。在缺省时或n后边跟着字符b时,这个
                单元是512字节的块,n后边跟着c是字节,n后边跟着k是千字节,
                n后边跟着w是两个字节的词.文件大小不能计算间接的块,但是
                能计算很少的没能实际分配大小的文件。

        -true 总是真

        -type c
                文件是类型c:
                b       块(缓冲)设备.
                c       字符设备.
                d       目录.
                p       有名管道(FIFO).
                f       规则文件.
                l       符号链结.
                s       插座.

        -uid n 文件的数字型用户ID是n.

        -used n
                文件的最后访问时间是在它的状态改变时间的n天前.






                               



        -user uname
                文件是属于名为uname(数字型ID也可)的用户。
        -xtype c
                这一项是和-type相同的除非文件是一个符号链结。
                若是符号链结:假如 -follow 没有给出,若这个文件链结
                的是类型为c的文件,则返回真;假如给了-follow选项,若c
                为'l',则返回真.对于符号链结, -xtype检测链结的文件类
                型,-type不做这样的检测。



事件


        -exec command ;
                执行命令;返回的状态值为零则为真。所有在这之后的参数
                都是command的参数,直到遇到';'.字符串'{}'将被当前的
                文件名代替,作为当前命令的参数,并不是象一些版本FIND
                一样是个单独存在的一个参数,这些语句应该被转义(用'\')
                或被引用,以此来保护他们被SHELL展开。这个命令将在起始
                目录被执行。

        -fls file
                值为真;同 -ls 但像 -fprint一样将输出写向文件file

        -fprint file
                值为真;输出整个文件名到文件file中.当find运行时file不
                存在,它将被建立;若存在,原来的文件内容将被删掉。也可以
                用名为"/dev/stdout"和"/dev/stderr"的文件,它们分别指
                的时是标准输出和标准错误。

        -fprint0 file
                值为真;同 -printf 但是将像 -fprint 一样将输出写像文
                件file.

        -ok command
                同 -exec但是先问用户(在标准输入);假如应答不是以'y'或
                'Y'开头,将不执行command,返回假。

        -print  值为真;在标准输出上输出整个文件名,并加一个新行。

        -print0
                值为真;在标准输出上输出整个文件名,并加一个空字符。这
                将允许



                                        6


                其它程序能正确的处理在FIND输出中包含新行的文件名。

        -printf format

                值为真。通过解释转义字符'\'和指示字符'%',格式化输出
                到标准输出上.空间宽度和精度能像c函数'printf'一样被
                指定。不像 -print, -printf不能在字符串的末尾自动加
                一个新行。这些转义和指示字符是:

                \a      鸣声.

                \b      退格键.

                \c      马上停止格式输出,输出到标准输出上。

                \f      换页符.

                \n      行符.

                \r      回车符.

                \t      水平制表符.

                \v      竖直制表符.

                \      反斜线.

                一个'\'字符后跟着其它字符将被视为普通字符,它们都将
                被输出。

                %%      符号'%'.

                %a      在格式输出中通过调用c函数'ctime'返回文件的
                        最后访问时间。

                %AK     用K指定的格式输出文件的最后访问时间。K可以
                        是'@'或者C函数'strftime'函数的一个指示。有
                        效的K值列在下边;它们不一定在所有的系统中都
                        有效,主要取决于这些系统中'strftime'函数的
                        异同。

                        @       从Jan.   1,  1970,  00:00 GMT到
                                现在的秒数。

                        时间域:

                        H       点钟 (00..23).




                        I       点钟 (01..12).

                        k       点种 ( 0..23).

                        l       点钟 ( 1..12).

                        M       分钟 ( 00.59).

                        p       本地的上午或下午.

                        r       时间,12小时格式 (hh:mm:ss[AP]M).

                        S       秒钟 (00.61).

                        T       时间,24小时格式 (hh:mm:ss).

                        X       本地的时间表示 (H:M:S).

                        Z       时区 (举例来说,EDT(美国东部时区)),或没
                                有表示没有可决定的时区。

                        日期域:

                        a       本地缩写的星期名 (Sun..Sat).

                        A       本地完全的星期名,不定长 (Sunday..Saturday).

                        b       本地缩写的月份名 (Jan...Dec).

                        B       本地完全的月份名,不定长 (January...December).

                        c       本地的日期和时间 (Sat Nov 04 12:02:33 EST 1989).

                        d       当月的哪一天 (01..31).

                        D       日期 (mm/dd/yy).

                        h       同 b.

                        j       当年的哪一天 (001..366).

                        m       月份 (01..12).

                        U       当年的星期数,用星期日做为一星期的第一天 (00..53).

                        w       星期的哪一天

                        W       当年的星期数,用星期一做为一星期的第一天 (00..53).



                        x       本地的日期表示法 (mm/dd/yy).

                        y       当年的最后两位数 (00..99).

                        Y       年份 (1970...).

                %b      用512字节的块计算的文件的大小(上舍入)。

                %c      用C函数'ctime'返回的文件状态的最后改变时间。

                %Ck     被k指定的文件状态的最后改变时间,k与%A后的k相同.

                %d      文件在目录树中的深度;0意味着文件在命令行参数中.

                %f      不带目录的文件名(只有最后的元素).

                %F      这个文件所在的文件系统类型名;这个值能被 -fstype用。

                %g      文件的组名,若组无名则是组ID.

                %G      文件的数字组ID.

                %h      文件的主目录 (除了最后的元素).

                %H      命令行参数若文件在命令行参数中找到.

                %i      文件的i节点数 (10进制格式).

                %k      用1K字节的块计算文件的大小(上舍入)。

                %l      符号链接的目标(假如文件不是一个符号链接则返回一个
                        空字符串).

                %m      文件的访问权限位 (八进制)

                %n      文件的硬链接数

                %p      文件名.

                %P      用在命令行参数之下发现的文件名代替文件名.



                %s      用字节计算的文件大小.

                %t      用C函数'ctime'返回的文件的最后编辑时间。

                %Tk     被k指定格式的文件的最后编辑时间,k与%A后的k相同.

                %u      文件的用户名,若没有则输出用户数字ID.   

                %U      文件的数字ID.   

                字符'%'后跟着另外的字符将被丢弃(但是其它的字符将输出).

        -prune  假如 -depth 没指定,值为真;不进入当前的目录。
                若 -depth 给定,值为假;没作用.

        -ls     值为真;用 'ls -dils'格式在标准输出中列出当前目录的文件。
                块记数单位是1k字节,除非 设定了POSIXLY_CORRECT环境变量,
                将用512字节作为单位。



操作符


        列出优先级顺序
       
        ( expr )
                强制优先.

        ! expr  假如expr为假则为真.

        -not expr
                同 ! expr.

        expr1 expr2
                和操作(默认); 假如expr1值是假expr2不能鉴定。

        expr1 -a expr2
                同 expr1 expr2.

        expr1 -o expr2
                与操作;假如expr1值是真expr2不能鉴定。

        expr1 -or expr2
                同 expr1 -o expr2

ip_conntrack: table full, dropping packet

日志信息:
www kernel: printk: 135 messages suppressed.
Apr 17 16:37:26 www kernel: ip_conntrack: table full, dropping packet.
Apr 17 16:37:26 www kernel: ip_conntrack: table full, dropping packet
Apr 17 16:37:33 www kernel: printk: 139 messages suppressed.
Apr 17 16:37:33 www kernel: ip_conntrack: table full, dropping packet.
Apr 17 16:37:37 www kernel: printk: 60 messages suppressed.
Apr 17 16:37:37 www kernel: ip_conntrack: table full, dropping packet
Apr 17 16:37:52 www kernel: printk: 19 messages suppressed.
Apr 17 16:37:52 www kernel: ip_conntrack: table full, dropping packet.
有丢包现象,应该是系统内核屏蔽了网卡功能,此时系统对外表现为连接时通时断,接着执行如下操作:
[root@web ~]# cat /proc/sys/net/ipv4/netfilter/ip_conntrack_max
65536

针对这个问题,可调整以下参数:
echo 180 > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_established
echo 6553600 > /proc/sys/net/ipv4/netfilter/ip_conntrack_max
echo 120 > /proc/sys/net/ipv4/neigh/default/gc_stale_time
echo 10240 > /proc/sys/net/ipv4/neigh/default/gc_thresh1
echo 40960 > /proc/sys/net/ipv4/neigh/default/gc_thresh2
echo 81920 > /proc/sys/net/ipv4/neigh/default/gc_thresh3

或vi /etc/sysctl.conf

net.ipv4.ip_conntrack_max=6553600
net.ipv4.netfilter.ip_conntrack_max=6553600
net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait=120
net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wait=60
net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wait=120
net.ipv4.neigh.default.gc_thresh1=10240
net.ipv4.neigh.default.gc_thresh2=40960
net.ipv4.neigh.default.gc_thresh3=81920


net.core.rmem_default = 2097152
net.core.rmem_max=16777216
net.core.wmem_max=16777216
net.core.wmem_default = 2097152


再sysctl -p

相关参数说明:

ARP支持一个sysctl接口,可以用以配置全局参数或逐个网络接口地进行配制。该sysctl可以通过/proc/sys/net/ipv4/neigh/*/*文件或者使用sysctl(2)接口来访问。系统中每个接口都在/proc/sys/net/ipv4/neigh/.中有自己的目录。`default'目录中的设置用于所有新建的设备。sysctl相关的时间是以秒为单位,除非特别声明过.


anycast_delay

对IPv6相邻请求信息的回复的最大延迟时间;目前还不支持anycast。缺省值为1秒。

app_solicit

这是在使用多路广播探测(multicast probe)前,经过网络连接送到用户间隙ARP端口监控程序的探测(probe)最大数目(见mcast_solicit)。缺省值为0。

base_reachable_time

一旦发现相邻记录,至少在一段介于base_reachable_time/2和3*base_reachable_time/2之间的随机时间内,该记录是有效的。如果收到上层协议的肯定反馈,那么记录的有效期将延长。缺省值是30秒。

delay_first_probe_time

发现某个相邻层记录无效(stale)后,发出第一个探测要等待的时间。缺省值是5秒。

gc_interval

收集相邻层记录的无用记录的垃圾收集程序的运行周期,缺省为30秒。

gc_stale_time
决定检查一次相邻层记录的有效性的周期。当相邻层记录失效时,将在给它发送数据前,再解析一次。缺省值是60秒。

gc_thresh1

存在于ARP高速缓存中的最少层数,如果少于这个数,垃圾收集器将不会运行。缺省值是128。

gc_thresh2

保存在ARP高速缓存中的最多的记录软限制。垃圾收集器在开始收集前,允许记录数超过这个数字5秒。缺省值是512。

gc_thresh3

保存在ARP高速缓存中的最多记录的硬限制,一旦高速缓存中的数目高于此,垃圾收集器将马上运行。缺省值是1024。

locktime

ARP记录保存在高速缓存内的最短时间(jiffy数),以防止存在多个可能的映射(potential mapping)时,ARP高速缓存系统的颠簸(经常是由于网络的错误配置而引起)。缺省值是1秒。

mcast_solicit

在把记录标记为不可抵达的之前,用多路广播/广播(multicast/broadcast)方式解析地址的最大次数。

缺省值是3。

 

proxy_delay

当接收到有一个请求已知的代理ARP地址的ARP请求时,在回应前可以延迟的jiffy(时间单位,见BUG)数目。这样,以防止网络风暴。缺省值是0.8秒。

proxy_qlen

能放入代理ARP地址队列(proxy-ARP addresses)的数据包最大数目。缺省值是64。
重发一个请求前的等待jiffy(时间单位,见BUG)的数目。缺省值是1秒。
询问ARP端口监控程序前,试图发送单探测(unicast probe)的次数。(见app_solicit).缺省值是3秒。
每个没有被其它网络层解析的地址,在队列中可存放包的最大数目。缺省值是3.

rpm scripts

rpm --scripts -qp xxxxpackage 

sudo

Linux下Sudo命令的使用方法 “Sudo” 是Unix/Linux平台上的一个非常有用的工具,它允许系统管理员分配给普通用户一些合理的“权利”,让他们执行一些只有超级用户或其他特许用户才能完成的任务,比如:运行一些像mount,halt,su之类的命令,或者编辑一些系统配置文件,像/etc/mtab, /etc/samba/smb.conf等。这样以来,就不仅减少了root用户的登陆次数和管理时间,也提高了系统安全性。
sudo的特点
Sudo能够限制用户只在某台主机上运行某些命令。
Sudo提供了丰富的日志,详细地记录了每个用户干了什么。它能够将日志传到中心主机或者日志服务器。
Sudo使用时间戳文件来执行类似的“检票”系统。当用户调用sudo并且输入它的密码时,用户获得了一张存活期为5分钟的票(这个值可以在编译的时候改变)。
Sudo的配置文件是sudoers文件,它允许系统管理员集中的管理用户的使用权限和使用的主机。它所存放的位置默认是在/etc/sudoers,属性必须为0411。
 
sudo配置文件
默认配置文件位置:/etc/sudoers
 [root@localhost bin]# cat /etc/sudoers
# sudoers file.
# This file MUST be edited with the visudo command as root.
#
# See the sudoers man page for the details on how to write a sudoers file.
#
# Host alias specification
# User alias specification
# Cmnd alias specification
# Defaults specification
# User privilege specification
root ALL=(ALL) ALL
# Uncomment to allow people in group wheel to run all commands
# %wheel ALL=(ALL) ALL
# Same thing without a password
# %wheel ALL=(ALL) NOPASSWD: ALL
# Samples
# %users  ALL=/sbin/mount /cdrom,/sbin/umount /cdrom
# %users  localhost=/sbin/shutdown -h now
用户可以用visudo编辑sudoers配置文件,不过也可以直接通过修改sudoers文件实现。
 
别名类型(Alias_Type):别名类型包括如下四种
Host_Alias   定义主机别名;
User_Alias   用户别名,别名成员可以是用户,用户组(前面要加%号)
Runas_Alias 用来定义runas别名,这个别名指定的是“目的用户”,即sudo 允许切换至的用户;
Cmnd_Alias  定义命令别名;
 
定义用户别名
User_Alias    TEST = ser1,user2,user3
User_Alias    Yield = user1,user2,user3
User_Alias
TEST= user1,user2,user3: Yield=user1,user2,user3
 
定义主机别名
Host_Alias    THOST = 192.168.1.0/255.255.255.0
Host_Alias    YHOST = 172.18.0.0,172.18.1.0/24
Host_Alias    MHOST = PC-001,PC-002,PC-003,10.0.0.0,255.255.255.0,
 
定义命令别名
Cmnd_Alias    DISKMAG = /sbin/fdisk,/bin/df
Cmnd_Alias    PWMAG = /usr/sbin/reboot,/usr/sbin/halt
Cmnd_Alias    SHELLS = /usr/bin/sh, /usr/bin/csh, /usr/bin/ksh, \   
                                /usr/local/bin/tcsh, /usr/bin/rsh
Cmnd_Alias     KILL = /usr/bin/kill:PWMAG = /usr/sbin/reboot,/usr/sbin/halt 
 
定义操作类型
Runas_Alias   DBADM = db2,mysql,oracle
 
/etc/sudoers中的授权规则:
授权规则是分配权限的执行规则,我们前面所讲到的定义别名主要是为了更方便的授权引用别名;如果系统中只有几个用户,其实下放权限比较有限的话,可以不用定义别名,而是针对系统用户直接直接授权,所以在授权规则中别名并不是必须的;
 
授权用户  主机=命令动作
test  ALL=/bin/rm, /bin/kill
表示test用户在任何主机中执行rm和kill操作。通过sodo –l 来查看test用户可执行的命令。
[switch@localhost ~]$ sudo -l
User switch may run the following commands on this host:
    (root) /bin/ls
(root) /bin/rm
[switch@localhost ~]$ sudo ls /root/
We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these two things:
         #1) Respect the privacy of others.
         #2) Think before you type.
Password:
anaconda-ks.cfg  Desktop  install.log  install.log.syslog
test  ALL=(root)  NOPASSWD: /bin/rm, /bin/kill
test  ALL=(test) /bin/ls
(root)  表示切换到哪些用户或用户组,默认为root用户,(ALL) 代表所有用户。
NOPASSWD:   系统默认的情况下是需要用户密码,加入NOPASSWD参数后就无需用户输入自己密码。
%member  ALL=/bin/*,/sbin/*
表示member中所有成员在所有主机上以root身份执行/bin和sbin下所有命令
Member  ALL=/bin/*,!/bin/kill
表示member中所有成员在所有主机上以root身份执行/bin,但kill命令除外。
 
sudo日志
在sudo中管理员可以启用sudo日志,通过sudo日志文件跟踪用户执行的任何指令。
Defaults logfile=/var/log/sudo.log   #指定sudo.log
Defaults loglinelen=0    #表示不记录空命令行
Defaults !syslog            #表示不记录到/var/log/messages
 
[root@localhost bin]# cat /var/log/sudo.log
Mar  3 03:17:30 : root : TTY=pts/0 ; PWD=/bin ; USER=root ; COMMAND=list
Mar  3 03:17:37 : switch : TTY=pts/0 ; PWD=/home/switch ; USER=root ;
    COMMAND=/bin/ls -l /root/ggg
Mar  3 03:17:38 : switch : TTY=pts/0 ; PWD=/home/switch ; USER=root ;
COMMAND=/bin/ls -l /root
 
sudo命令格式如下:
  sudo -K -L -V -h -k -l -vsudo [-HPSb] [-a auth_type] [-c
  class-] [-p prompt] [-u username#uid] {-e file [...] -i -s command}
  下面我们再来看一下sudo其它常用的一些参数:
  选项    含义    作用
  sudo  -h   Help        列出使用方法退出。
  sudo  -V   Version     显示版本信息并退出。
  sudo  -l     List     列出当前用户可以执行的命令。只有在sudoers里的用户才能使用该选项。
  sudo  -u username|#uid  User     以指定用户身份执行命令后面的用户是除root以外的,可以是用户名,也可以是#uid。
  sudo  -k     Kill     清除“入场卷”上的时间,下次再使用sudo时要再输入密码。
  sudo  -K     Sure kill     与-k类似,但是它还要撕毁“入场卷”,也就是删除时间戳文件。
  Sudo  -b command     Background     在后台执行指定的命令。
 
别名实例
User_Alias    NORMAL = localuser,pubuser,shuser,backuser
User_Alias    MANGE =  admin,member,switch
User_Alias    POWER =  shutuser
User_Alias    TEST = adtest,test1,test2,test3
 
Host_Alias    APPSYS = web,ftp,mail
Host_Alias    PRODUCT = db1,db2,db3,backup
Host_Alias    TESTSYS = 192.168.2.0/255.255.255.0
 
Cmnd_Alias    FILE = /bin/ls,/bin/ln,/bin/cp,/bin/cat,/bin/chmod,/bin/cut,/bin/more,/bin/mv,\
                    /bin/vi,/bin/rm,/bin/rmdir,/bin/touch
Cmnd_Alias    ADSHELL = /bin/*,/sbin/*
Cmnd_Alias    SHUT = /sbin/shutdown,/sbin/reboot,/sbin/halt
 
Runas_Alias   DBA = mysql
 
#NORMAL只能在PRODUCT网络和APPSYS中执行FILE指令
NORMAL APPSYS = FILE:NORMAL PRODUCT = FILE
 
#MANGE用户组可在所有网络上执行/bin/sbin下所有指令
MANGE ALL = ADSHELL
 
#admin用户可在任何网络环境中执行任何所有命令除TESTSYS网络主机外
admin ALL =(root) NOPASSWD: ALL:!admin=TESTSYS
 
#admin用户可以修改所有网络除root外用户口令
admin ALL = /usr/bin/passwd[A-z]*,!/usr/bin/passwd root
 
#MANGE组无需输入口令可在所有网络上执行ADSHELL,和SHUT命令
MANGE ALL = NOPASSWD: ADSHELL,SHUT
 
#shutuser用户可在所有网络环境中执行ADSHELL命令
shutuser ALL =(ALL) ADSHELL
 
#NORMAL组可以在APPSYS网络上su除root之外的所有人
NORMAL APPSYS=/bin/su [!-]*,!/bin/*root*
 
#MANGE组用户可在PRODUCT网络环境上执行 mysql用户指令
MANGE PRODUCT=( DBA) /usr/local/mysql/bin/*

linux下多线程下载工具

Axel是命令行下的多线程下载工具,支持断点续传,速度通常情况下是Wget的几倍。
下载 http://axel.alioth.debian.org/ 
http://alioth.debian.org/frs/download.php/3015/axel-2.4.tar.gz

安装

# tar zxvf axel-1.0b.tar.gz
#cd axel-1.0b
#./configure
#make
#make install

基本的用法如下:

#axel [选项] [下载目录] [下载地址]

-s [x]:指定每秒下载最大比特数。
n [x]:指定同时打开的线程数。
-o f:指定本地输出文件。
-S [x]:搜索镜像并从X servers服务器下载。
-N:不使用代理服务器。
-v:打印更多状态信息。
-a:打印进度信息。
-h:该版本命令帮助。
-V:查看版本信息号。
 

一个典型下载如下:
# axel -n 10 -o /home/zm/  http://lab.sa.bupt.cn/ewebeditor/UploadFile/200752117642450.doc

用10线程将指定路径的文件下载到/home/zm目录下。

---------------------

Linux多线程下载工具myget,替换单线程wget

http://myget.sourceforge.net/

 

经测试,下载一个56M的文件,wget ,aexl,myget的下载时间都差不多,体现不出多线程的感觉.

不知是和服务端,线路有关还是怎样

--------------------------

lftp -c "pget -c -n 5 url"

Linux 输入输出重定向

linux重定向
  I/O重定向详解及应用实例
  1、 基本概念(这是理解后面的知识的前提,请务必理解)
  a、 I/O重定向通常与 FD有关,shell的FD通常为10个,即 0~9;
  b、 常用FD有3个,为0(stdin,标准输入)、1(stdout,标准输出)、2(stderr,标准错误输出),默认与keyboard、monitor、monitor有关;
  c、 用 < 来改变读进的数据信道(stdin),使之从指定的档案读进;
  d、 用 > 来改变送出的数据信道(stdout, stderr),使之输出到指定的档案;
  e、 0 是 < 的默认值,因此 < 与 0<是一样的;同理,> 与 1> 是一样的;
  f、 在IO重定向 中,stdout 与 stderr 的管道会先准备好,才会从 stdin 读进资料;
  g、 管道“|”(pipe line):上一个命令的 stdout 接到下一个命令的 stdin;
  h、 tee 命令是在不影响原本 I/O 的情况下,将 stdout 复制一份到档案去;
  i、 bash(ksh)执行命令的过程:分析命令-变量求值-命令替代(``和$( ))-重定向-通配符展开-确定路径-执行命令;
  j、 ( ) 将 command group 置于 sub-shell 去执行,也称 nested sub-shell,它有一点非常重要的特性是:继承父shell的Standard input, output, and error plus any other open file descriptors。
  k、 exec 命令:常用来替代当前 shell 并重新启动一个 shell,换句话说,并没有启动子 shell。使用这一命令时任何现有环境都将会被清除。exec 在对文件描述符进行操作的时候,也只有在这时,exec 不会覆盖你当前的 shell 环境。
  2、 基本IO
  cmd > file 把 stdout 重定向到 file 文件中;
  cmd >> file 把 stdout 重定向到 file 文件中(追加);
  cmd 1> fiel 把 stdout 重定向到 file 文件中;
  cmd > file 2>&1 把 stdout 和 stderr 一起重定向到 file 文件中;
  cmd 2> file 把 stderr 重定向到 file 文件中;
  cmd 2>> file 把 stderr 重定向到 file 文件中(追加);
  cmd >> file 2>&1 把 stderr 和 stderr 一起重定向到 file 文件中(追加);
  cmd < file >file2 cmd 命令以 file 文件作为 stdin,以 file2 文件作为 stdout;
  cat <>file 以读写的方式打开 file;
  cmd < file cmd 命令以 file 文件作为 stdin;
  cmd << delimiter Here document,从 stdin 中读入,直至遇到 delimiter 分界符。
  3、 进阶IO
  >&n 使用系统调用 dup (2) 复制文件描述符 n 并把结果用作标准输出;
  <&n 标准输入复制自文件描述符 n;
  <&- 关闭标准输入(键盘);
  >&- 关闭标准输出;
  n<&- 表示将 n 号输入关闭;
  n>&- 表示将 n 号输出关闭;
  上述所有形式都可以前导一个数字,此时建立的文件描述符由这个数字指定而不是缺省的 0 或 1。如:
  ... 2>file 运行一个命令并把错误输出(文件描述符 2)定向到 file。
  ... 2>&1 运行一个命令并把它的标准输出和输出合并。(严格的说是通过复制文件描述符 1 来建立文件描述符 2 ,但效果通常是合并了两个流。)
  我 们对 2>&1详细说明一下 :2>&1 也就是 FD2=FD1 ,这里并不是说FD2 的值 等于FD1的值,因为 > 是改变送出的数据信道,也就是说把 FD2 的 “数据输出通道” 改为 FD1 的 “数据输出通道”。如果仅仅这样,这个改变好像没有什么作用,因为 FD2 的默认输出和 FD1的默认输出本来都是 monitor,一样的! 但是,当 FD1 是其他文件,甚至是其他 FD 时,这个就具有特殊的用途了。请大家务必理解这一点。
  exec 0exec 1>outfilename # 打开文件outfilename作为stdout。
  exec 2>errfilename # 打开文件 errfilename作为 stderr。
  exec 0<&- # 关闭 FD0。
  exec 1>&- # 关闭 FD1。
  exec 5>&- # 关闭 FD5。

rpm卸载错误

如:error: "" specifies multiple packages

增加--allmatches选项搞掂,如:rpm -e --allmatches filename

linux rar