perl 快速解决配置文件错误的问题 Posted on 2020-06-05 | 因为一些绑定 ip 地址配置错误,导致服务器的 rpm 包在迁移到别的机器以后无法启动,重新打包 rpm 需要等一段时间,所以我想到了用脚本来修改已经安装上的配置文件。基本思路是先用 grep 找到有问题的配置文件,然后逐一替换。 1234567891011#!/usr/bin/env perl# 找到需要修改的配置文件my @files = `grep '10.44.155' -rn /opt/nspm/ -l | grep -v etcd | grep -v bin`;foreach my $file (@files) {# 替换配置文件内容, sed 4.2.2 版本的正则有点 bug ,改用 perl chomp($file); printf "%s\n","perl -p -i -e 's/10.44.155.[0-9]{1,3}/127.0.0.1/g' $file"; system("perl -p -i -e 's/10.44.155.[0-9]{1,3}/127.0.0.1/g' $file");}# 批量重启服务system("check | awk '{print $1}' | grep nspm | xargs -I {} systemctl restart {}"); 执行脚本以后,果然服务都能启动成功啦。