Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Perl 在CentOS上更改主机名的脚本_Perl_Hostname - Fatal编程技术网

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;”