Perl 在CentOS上更改主机名的脚本
我使用Perl 在CentOS上更改主机名的脚本,perl,hostname,Perl,Hostname,我使用curl使用HTTP get请求从服务器中提取主机名,这很好。我需要我的脚本来修改/etc/sysconfig/network文件,这样我就不必重新启动系统来应用主机名 以下是我迄今为止的代码: #!/usr/local/bin/perl use strict; use warnings; use Sys::Hostname; my $curl = `curl http://100.10.10.10/hostname`; # Get correct hostname my $hos
curl
使用HTTP get请求从服务器中提取主机名,这很好。我需要我的脚本来修改/etc/sysconfig/network
文件,这样我就不必重新启动系统来应用主机名
以下是我迄今为止的代码:
#!/usr/local/bin/perl
use strict;
use warnings;
use Sys::Hostname;
my $curl = `curl http://100.10.10.10/hostname`; # Get correct hostname
my $host = hostname;
if ($curl ne $host) {
# Need to modify the /etc/sysconfig/network file to replace hostname or add it.
}
编辑:
我的实际问题是:用新的主机名修改该文件的最佳方式是什么?我想你想要的是
my $host = qx{hostname};
而不是
my $host = hostname;
另外,为什么不手动进行更改(例如,打开/etc/hosts或任何您想要编辑的文件,然后进行编辑,只需确保
$>
为0…脚本以用户root身份运行即可)。不要忘记chomp($curl)代码>好吧,你应该锁定文件,在同一卷上创建一个新文件,对于原始文件中的每一行{从原始文件读取,根据需要转换读取的内容,将更改写入新文件},然后在原始文件上重命名新文件。你有具体问题吗,或者您正在寻找代码编写服务?我使用的是“use Sys::Hostname;”