首页 > 代码库 > 如何在站点静态文件下查找某关键字并修改文件名?

如何在站点静态文件下查找某关键字并修改文件名?

前段时间,因关于某些政治性的内容,公司部分站点需要做处理,而且数据库只保存近几年的,无法通过数据库删除或修改早些年的静态页面数据

站点文件个数,不会少于几百万,我想大家不会一个个手工查找吧!也许真的有人那样搞呢,我只能“呵呵”了

用程序思想去解决工作中遇到的问题,很有必要!

站点环境:linux

可以使用的shell脚本处理,因为他们是天生在一起的,而且处理上很方便,不过一开始有一个问题木有考虑到,后面再讲

上代码,shell代码如下:

#!/bin/sh# author: 凹凸曼# email: jar-c@163.comd=$1delname=$2#delname1=$3if [ -z $d ]then   echo "站点不存在"    exit 0fiif [ -z $delname ]then  echo "关键字不存在"  exitfilog=./search.logfind ${d}	-type f -iname  "*.htm" -o -type f -iname "*.html" -o -type f -iname "*.shtml" -o -type f -iname "*.shtm"|xargs grep "$delname" >> ${log}#| cut -d\: -f1  | awk ‘{system("mv "$1" "$1"xxx" )}‘sleep 1while read linedo   d=`echo $line | cut -d\: -f1`  mv "$d" "$d"xxx | echo "$d 修改为 $d"x >>result.log    sleep 1done < ${log}mv ${log} ${log}`date +%Y%m%d%H%s`

本地测试了,木问题,上服务器测试,找不到相应的关键字的页面

问题:页面是乱码,原因:系统编码造成的,不想改变正在运行中的环境编码

就用python重新写了一个脚本程序进行处理如下:

# -*- coding:utf-8 -*-# author: 凹凸曼# email : jar-c@163.comimport osimport os.pathimport re#版本要求:2.6至3.0以下class ReFile():  #目录  __rdir="./"  __type=[‘.htm‘,‘.html‘,‘.shtml‘,‘.shtm‘]  #文件名后缀增加 sss  __dsuffix=‘sss‘  #处理的关键字  __dealstr=‘‘  __log="./re.log"  def __init__(self,dir,dealstr):    self.__rdir=dir    self.__dealstr=dealstr  def getFiles(self):    for parent,dirnames,filenames in os.walk(self.__rdir):      for filename in filenames:        dirfilename=parent+‘/‘+filename        if  os.path.splitext(filename)[1] in self.__type:          try:            data=http://www.mamicode.com/open(dirfilename,‘r‘).read().decode("gbk").encode("utf-8")          except Exception,e:            data=http://www.mamicode.com/open(dirfilename,‘r‘).read()"/data/site","凹凸曼博客|apoyl")  refile.getFiles()

总结:系统运维中,常常需要把处理问题的思路实现成具体程序,去处理一些繁琐的问题

  • 相关文章推荐:
  • Linux有问必答:如何在VMware ESXi虚拟机上设置静态MAC地址
  • ArchLinux(2013)中的网络配置和静态IP时DNS刷新的解决方法
  • Linux服务器静态IP设置与Proftpd连接速度优化
  • 本文来自:Linux技术网
  • 本文链接:http://www.ahlinux.com/mainte/9345.html

如何在站点静态文件下查找某关键字并修改文件名?