知行合一

Linux批量重命名文件

嘟嘟鱼阅读(1672)

今天一个用户装的论坛把表前缀写成别的了,要改回cdb开头,于是乎就需要批量修改文件名,上网搜索了下Linux批量重命名文件,发现小蜗牛的一篇文章很实用,就收藏了。

目的:批量重命名一些文件,这些文件有共同特征,比如具有相同的字母,或者没有共同特征,想统一重命名,修改它们相同位置上的字符等等。
机器马大侠给了个新提示rename 就可以实现,一试用果然更爽,表示感谢。
以下命令实现的结果是把cdb替换成abc
rename cdb abc cdb*
 
1、我想把它们的名字的第一个1个字母变为”q”,其它的不变
 
[root@pps mailqueue]# for i in `ls`; do mv -f $i `echo $i | sed ‘s/^./q/’`; done
 
—————————————-
或者写个脚本,显得更加清晰:
for file in `ls`
do
  newfile =`echo $i | sed ‘s/^./q/’`
 mv $file $newfile
done
—————————————-
 
2、修改前面5个字母为zhaozh
 
[root@pps mailqueue]# for i in `ls`; do mv -f $i `echo $i | sed ‘s/^…../zhaozh/’`; done
 
3、修改后面5个字母为snail
 
[root@pps mailqueue]# for i in `ls`; do mv -f $i `echo $i | sed ‘s/…..$/snail/’`; done
 
4、在前面添加 _hoho_
 
[root@pps mailqueue]# for i in `ls`; do mv -f $i `echo “_hoho_”$i`; done
 
5、所有的小写字母变大写字母
 
[root@pps mailqueue]# for i in `ls`; do mv -f $i `echo $i | tr a-z A-Z`; done
唉,举了5个例子,说到底就是用“for 循环 + 组合命令处理”的思路来实现文件批量重命名滴。

linux下php加载mbstring的方法

嘟嘟鱼阅读(1395)

最近服务器上有人需要用到mbstring,还有pdo_mysql,问的人越来越多了,总结下编译方法吧。
环境php5.2.4, 不支持mbstring扩展
假如php的源码包在/usr/local/src/php-5.2.4
php安装目录是/usr/local/php

# cd /usr/local/src/php-5.2.4/ext/mbstring/
# rpm -qa|egrep “autoconf|gcc”                        这个是检测这些组件是否安装,没有安装请执行下面这句,否则会报错
# yum -y install autoconf gcc gcc-c++
# phpize
# ./configure –with-php-config=/usr/local/bin/php-config
# make
# make install

执行完毕后在php.ini里增加extension=mbstring.so

重启web服务器, 看一下phpinfo, 应该支持mbstring了, 完毕!

pdo_mysql 加载方法同上把mbstring替换成pdo_mysql即可

crontab 格式

嘟嘟鱼阅读(1570)

第1列分钟1~59
第2列小时1~23(0表示子夜)
第3列日1~31
第4列月1~12
第5列星期0~6(0表示星期天)
第6列要运行的命令

下面是crontab的格式:
分 时 日 月 星期 要运行的命令

这里有crontab文件条目的一些例子:

30 21 * * * /usr/local/apache/bin/apachectl restart
上面的例子表示每晚的21:30重启apache。

45 4 1,10,22 * * /usr/local/apache/bin/apachectl restart
上面的例子表示每月1、10、22日的4 : 45重启apache。

10 1 * * 6,0 /usr/local/apache/bin/apachectl restart
上面的例子表示每周六、周日的1 : 10重启apache。

0,30 18-23 * * * /usr/local/apache/bin/apachectl restart
上面的例子表示在每天18 : 00至23 : 00之间每隔30分钟重启apache。

0 23 * * 6 /usr/local/apache/bin/apachectl restart
上面的例子表示每星期六的11 : 00 pm重启apache。

* */1 * * * /usr/local/apache/bin/apachectl restart
每一小时重启apache

* 23-7/1 * * * /usr/local/apache/bin/apachectl restart
晚上11点到早上7点之间,每隔一小时重启apache

0 11 4 * mon-wed /usr/local/apache/bin/apachectl restart
每月的4号与每周一到周三的11点重启apache

0 4 1 jan * /usr/local/apache/bin/apachectl restart
一月一号的4点重启apache

解决mysql服务的两个基本问题

嘟嘟鱼阅读(1366)

使用mysql基本基本上会遇到主要的两个问题.
1.第一次起动mysql是没有问题的.对mysql做了一些操作,特别是删除mysql中一些不要的帐号后,重新起动mysql会遇到这样的问题
#/etc/init.d/mysqld restart
stopping mysql     [ok]
Timeout error occurred trying to start MySQL Daemon.  [failure] 

 但是这个时候mysql实际上已经起动了,因为用netstat -ln命令去看3306端口已经起动.使用mysql -u root -p password也能连接到数据库.
这实际上是mysql-3.x的一个bug(具体可以去看mysql的bugzilla和redhat的bugzilla).
是什么原因导致连接超时呢?
我们不妨先看看/etc/init.d/mysqld起动脚本是如何工作的,注意下面的一段
(更多…)

linux 统计文件个数

嘟嘟鱼阅读(1133)

查看某文件夹下文件的个数
ls -l |grep “^-“|wc -l

find ./company -type f | wc -l
查看某文件夹下文件的个数,包括子文件夹里的。
ls -lR|grep “^-“|wc -l
查看某文件夹下文件夹的个数,包括子文件夹里的。
ls -lR|grep “^d”|wc -l
说明:
ls -l
长列表输出该目录下文件信息(注意这里的文件,不同于一般的文件,可能是目录、链接、设备文件等)
grep “^-”
这里将长列表输出信息过滤一部分,只保留一般文件,如果只保留目录就是 ^d
wc -l
统计输出信息的行数,因为已经过滤得只剩一般文件了,所以统计结果就是一般文件信息的行数,又由于
一行信息对应一个文件,所以也就是文件的个数。

Argument list too long 的解决办法

嘟嘟鱼阅读(1200)

今天一个用户空间超了,他空间使用情况老是统计不对,很是郁闷,登录服务器查看他用的是ecshop的程序,templates/caches 这个文件夹就占了130多m,这里全是缓存文件,问了下ecshop的技术支持说下个版本会改进此问题,直接进templates/caches 运行rm -rf * 提示-bash: /bin/rm: Argument list too long ,看提示是里面文件太多了,mv也不行,问了下系统部的同事要了个脚本执行了一下就删除了,代码如下:

#!/bin/bash

# 设定需要删除的文件夹
RM_DIR=’/data/files’

cd $RM_DIR
for I in `ls`
do
rm -f $I
done

精简方法:ls | xargs rm -f

第二种解决方法:find所有文件,然后送给rm删除.
find /var/spool/mqueue -type f -exec rm {} ;

2009年4月3日新增一种方法:

find PATH -name *.mp3 -exec rm {} \;

如:解决方法:find  ./cache  -name ‘*’ -exec rm {} \; 等到执行完毕之后,再进入cache,执行一个rm –rf *即可。此方法来自:生活点滴

成功在ubuntu上运行傲游最新版

嘟嘟鱼阅读(1094)

虽然整个过程有的朋友会觉得毫无意义,但是配置过程有很多值得学习的地方,希望大家能参考一下。
由于设置很复杂,给大家提供几个重点以供参考。。。环境:vista SP1 + ubuntu8.04双系统.全部打上最新补丁。
第一步,安装wine
在ubuntu上,安装wine.
注意,一定要最新版,0.9.61以上,旧版不行。 (更多…)

linux iptables 如何封IP段

嘟嘟鱼阅读(1196)

124.115.*.*这个ip段非常恶心,建议在服务器上都封锁
# iptables -F
# iptables -P INPUT ACCEPT
# iptables -P OUTPUT ACCEPT
# iptables -P FORWARD ACCEPT
# iptables -A FORWARD -s 124.115.0.0/24 -j DROP
# iptables -I FORWARD -d 202.96.170.164 -j DROP

补充::

封单个IP的命令是:
iptables -I INPUT -s 211.1.0.0 -j DROP

封IP段的命令是:
iptables -I INPUT -s 211.1.0.0/16 -j DROP
iptables -I INPUT -s 211.2.0.0/16 -j DROP
iptables -I INPUT -s 211.3.0.0/16 -j DROP

封整个段的命令是:
iptables -I INPUT -s 211.0.0.0/8 -j DROP

封几个段的命令是:
iptables -I INPUT -s 61.37.80.0/24 -j DROP
iptables -I INPUT -s 61.37.81.0/24 -j DROP

想在服务器启动自运行的话有三个方法:
1、把它加到/etc/rc.local中
2、iptables-save >;/etc/sysconfig/iptables可以把你当前的iptables规则放到/etc/sysconfig/iptables中,系统启动iptables时自动执行。
3、service iptables save 也可以把你当前的iptables规则放/etc/sysconfig/iptables中,系统启动iptables时自动执行。
后两种更好此,一般iptables服务会在network服务之前启来,更安全。

解封的话:
iptables -D INPUT -s IP地址 -j REJECT
iptables -F 全清掉了

刚才不小心搞的自己都连不上了-_-!!!
iptables -I INPUT -p tcp –dport 80 -s 124.115.0.0/24 -j DROP
以后用这种只封80端口就行了,不会出问题!  

Linux下常用压缩格式的压缩与解压方法

嘟嘟鱼阅读(1102)

.tar
解包: tar xvf FileName.tar
打包:tar cvf FileName.tar DirName
(注:tar是打包,不是压缩!)
———————————————
.gz
解压1:gunzip FileName.gz
解压2:gzip -d FileName.gz
压缩:gzip FileName
.tar.gz
解压:tar zxvf FileName.tar.gz
压缩:tar zcvf FileName.tar.gz DirName
———————————————
.bz2
解压1:bzip2 -d FileName.bz2
解压2:bunzip2 FileName.bz2
压缩: bzip2 -z FileName
.tar.bz2
解压:tar jxvf FileName.tar.bz2
压缩:tar jcvf FileName.tar.bz2 DirName
———————————————
.bz
解压1:bzip2 -d FileName.bz
解压2:bunzip2 FileName.bz
压缩:未知
.tar.bz
解压:tar jxvf FileName.tar.bz
压缩:未知
———————————————
.Z
解压:uncompress FileName.Z
压缩:compress FileName
.tar.Z
解压:tar Zxvf FileName.tar.Z
压缩:tar Zcvf FileName.tar.Z DirName
——————————————— (更多…)

“Linux”正确读音!

嘟嘟鱼阅读(5752)

最近发现同事对linux的发音很奇怪,和平时我们发的都不一样,今天他给我发来了这段内容才发现原来我们一直读错了!“linux”的正确读音及音标 !

———————————————————————————————————
“linux”这个单词根据linus torvalds本人的发音应该是“哩呐克斯”
音标是 [‘li:nэks] 重音在“哩”上
———————————————————————————————————

以上结论来自红旗linux技术支持部及一个从事网络安全工作多年的网友
上面是原话,他们答案是一致的当然也是权威的
主要是因为看见linuxsir的几位大侠级别的兄弟把“linux”读错了
并且把错误的读音教给了新来的朋友
所以就想着去问问正确读音
“哩呐克斯”只是根据发音翻译的
请大家按照[‘li:nэks]这个音标读
(更多…)