摘要:
刚入职赶上了研发整理线上代码,需要将线上的无用的代码进行删除。作为运维菜鸟的我想的非常简单,直接rm就好啦,如果真的这样做的话可能当天就要走人啦~\(≧▽≦)/~。和老大请教一番后,总结以下几点需要注意的地方:
1、生产环境中web站点可能会存在多个,比如pc访问的站点和app访问的站点,是两个完全不同的站点,自然Root目录也就不同,删除时需要注意是哪个站点的哪些文件。站点Root路径需要从Nginx的配置中获取
root /www/site/node1;
2、所有的删除操作都不能直接彻底删除,需要先做好备份,以便出错后快速恢复线上环境使用。那么在备份的时候,也需要将目标文件所有的父目录和属性都进行备份操作,这样才能快速的定位被删除的文件位置。cp命令在使用parents选项时可以复制文件所有路径信息到指定目录下,在执行一次rm即可。
cp --parents -a
线上脚本:
不同站点修改对应的根目录,准备删除文件的相对路径写入/root/del_file.txt,如果使用绝对路径,删除根路径的定义和调用即可。
#!/bin/bash
today=`date +%Y%m%d`
mkdir -p /tmp/backup_$today
#对应站点根目录
ppath="/www/site/note1"
dpath="/tmp/backup_$today/"
#站点根目录下对应文件列表(相对路径)
files=`cat /root/del_file.txt`
for i in $files
do
cp -a --parents $i $dpath
rm -rf $i
done