文章标签 ‘linux’

linux find命令小记

2012年2月3日 没有评论

在一个备份脚步中执行了删除7天前的旧备份文件的命令,备份文件存放在/home/backups/files/下,命令如下:

find /home/backups/files/ -mtime +6 -exec rm -rf {} \;

开始时候运行正常,一段时间后发现没有备份了,查看下来,发现/home/backups/files/文件都不存在了。原来是因为find写法有问题,find /home/backups/files/ -mtime +6 出来的结果会包含/home/backups/files/目录(当files目录的创建时间超过7天),是自己想当然的以为在目录后面加了“/”就只查找该目录下的文件,测试下来,find /home/backups/files/ -mtime +6和find /home/backups/files -mtime +6的结果一致。知道问题所在了,解决问题就好办了,只需要在后面加个星号(*)通配符就行了,如下:

find /home/backups/files/* -mtime +6 -exec rm -rf {} \;
分类: Linux 标签: ,

>/dev/null 2>&1含义

2011年12月20日 没有评论

执行linux命令或脚本时,如果不想打印出错误信息,可以使用

command 2>/dev/null

注意:2>/dev/null中间不要有空格

同样,如果不想看到标准的输出,则可以这样

command 1>/dev/null

要是不想看到任何输出,则:

command >/dev/null 2>&1

linux有3个默认的I/O

  1. 0 是标准输入,一般是键盘
  2. 1 是标准输出,一般是屏幕了
  3. 2 是标准错误,有时候屏幕上可以看到,但是重定向的文件中看不到的就是它了

现在知道上述的1、2的含义了,所以第一条命令就是把命令的错误信息重定向到一个空设备中,即丢弃此信息,第二条就是把标准输出重定向到空设备中,最后一条是把标准输出(默认)重定向到空设备,同时把错误信息定向到标准输出中,当然可以这么写

command 1>/dev/null 2>&1
分类: Linux 标签: ,

netstat命令的常见用法

2011年11月17日 没有评论
  • 查看系统服务监听状况
netstat -tunlp
  • 查看连接某服务端口最多的的IP地址
netstat -nat | grep "10.150.185.178:80" | awk '{print $5}' | awk -F: '{print $1}' | sort | uniq -c | sort -nr | head -20
  • TCP各种状态列表
netstat -nat | awk '{print $6}' | sort | uniq -c | sort -rn
或
netstat -na | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

另外分析access.log获得访问前10位的ip地址可以用如下命令:

awk '{print $1}' access.log | sort | uniq -c | sort -nr | head -10
分类: Linux 标签: ,

解决ssh空闲一段时间后自动断开的方法

2011年11月3日 没有评论

用客户端工具,例如securecrt连接linux服务器,有的会出现过一段时间没有任何操作,客户端与服务器就断开了连接。造成这个的原因,主要是因为客户端与服务器之间存在路由器,防火墙以及为了本身的安全性,在超过特定的时间后就会把空闲连接断开。或者是服务器端设置了断开空闲连接。那么解决的方法有两种,一是从服务器着手,一是在客户端工具上下手。

  • 服务器端

修改/etc/ssh/sshd_config配置文件 ClientAliveInterval 300(默认为0),参数的是意思是每5分钟,服务器向客户端发一个消息,用于保持连接,使用service sshd reload 让其修改后生效。如果发现还是有问题,可以试着把300设置小一点,例如60。

  • 客户端工具

securecrt的设置方法:会话选项 –> 终端 –> 反空闲–>选中发送协议 NO-OP(p) 每 60 秒

putty的设置方法:putty -> Connection -> Seconds between keepalives ( 0 to turn off ), 默认为0, 改为300

分类: Linux 标签: , ,

rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted

2011年10月25日 没有评论

出现rsync: failed to set times on “xxxx”: Operation not permitted的原因大致是对文件夹(或文件)xxxx没有操作权限。如果执行同步的用户是root,是不会有这样的问题,但是rsync也可以不使用root用户来进行同步,不使用root用户的情况下,即使使用了-o,-g,同步到目的文件夹的文件用户和组都变成了同步使用的用户,但是用-p后文件权限可以保留。当目的文件夹(或文件)xxxx事后做过修改使owner不是rsync使用的用户,即使xxxx的权限是777,也会出现上述错误。

分类: Linux 标签: , ,

linux中配置的crontab不执行

2011年9月26日 1 条评论

在linux下提供的crontab可以很轻松的帮我们完成一些需要定时处理的任务。在某些系统下,明明通过terminal可以执行的动作,加入到crontab后却没有执行,检查配置也没有任何问题。最终发现是由于cron的运行环境(包括path等)可能不是和登陆的当前用户一致造成的,所以在配置crontab时,建议命令用完整路径。

分类: Linux 标签: ,

linux下删除文件名乱码文件

2011年9月22日 没有评论

linux下通过rm命令来删除文件,但是如果要删除文件名乱码的文件,就不能直接使用rm命令了,因为压根就无法输出文件名来。不过借助find命令可以实现对其删除。在linux下对于每个文件都一个对应的不变的inode号,使用 ls -li 可以查看到文件的inode号,同时find可以根据inode号来查找,另外find命令中可以执行其他的命令。删除的步骤如下:

  1. 通过ls -li 获取要删除乱码文件名文件的inode号,比如得到的是 123456
  2. 执行删除
find ./ -inum 123456 -exec rm -rf {} \;

注意:“{}”后要空一格再加上“\;”。

分类: Linux 标签: , , ,

find命令错误提示路径必须在表达式之前

2011年9月22日 没有评论

在某些版本的linux下,通过find查找当前目录下所有后缀名jpg的文件,命令为

find ./ -iname *.jpg

会出现“find: 路径必须在表达式之前”的错误提示。解决的方法有两种

  1. 使用转义符把*转义,即  \*.jpg
  2. 用引号引起来 ,即 “*.jpg”

注意:如果需要把find 的结果提交给while,例如:

`echo find ./ -iname "\*.jpg"` | while read f
do
   #do something
done

则既需要转义符,也需要引号

分类: Linux 标签: ,

linux下history命令配置

2011年9月5日 没有评论

linux中每次执行的命令都会纪录,一般默认最近纪录1000条。可以通过history来查看先前输入的命令,有时候重复执行某条命令多次,这样对查找先前执行的命令造成不方便,可以在/et/bashrc中进行如下设置。

去除连续重复的命令

export HISTCONTROL=ignoreboth

消除整个命令历史中的重复命令

export HISTCONTROL=erasedups

如果需要记录更多命令历史记录,例如2000条

export HISTSIZE=2000

ubuntu下iptables 执行清除命令 iptables -F 要非常小心

2011年9月5日 没有评论

使用 /sbin/iptables -F 要小心,搞不好,你就马上同服务器断开连接了,以下是来自 http://wiki.ubuntu.org.cn/IptablesHowTo 上的说明
可以通过/sbin/iptables -F清除所有规则来暂时停止防火墙: (警告:这只适合在没有配置防火墙的环境中,如果已经配置过默认规则为deny的环境,此步骤将使系统的所有网络访问中断)
如果想清空的话,先执行

/sbin/iptables -P INPUT ACCEPT

然后执行

/sbin/iptables -F

通过iptables -L 看到如下信息
Chain INPUT (policy DROP 0 packets, 0 bytes) (注意 是DROP)
执行/sbin/iptables -F就肯定立马断开连接
当执行了/sbin/iptables -P INPUT ACCEPT,再次通过iptables -L看信息的话就是
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
所以现在是可以安全使用/sbin/iptables -F了

分类: Linux 标签: , , ,

无觅相关文章插件,快速提升流量