Perl 远程修改主机名

Perl · ruyi · 于 1年前发布 · 581 次阅读

Perl远程修改hostname

sub dowork{
    my  $_id=shift;
    my  $_bx_master_ip=shift;
    my  $_bx_master_hostname=shift;

    my $_sh_ip = $_bx_master_ip;

    eval {

        my $cssh=&key_ssh($_sh_ip,"root","");
        $logger->debug("$_sh_ip,I am login in host.");

        my $hostname = $cssh->capture2({timeout => 5},"hostname");
        chop($hostname) while ($hostname =~ /[\r\n]$/); //过滤获取到的hostname的空格和换行等内容
        my $syscmd =  "sed -i \'s/HOSTNAME=$hostname/HOSTNAME=$_bx_master_hostname/g\' /etc/sysconfig/network";
        $cssh->capture2({timeout => 5},"$syscmd");
        $cssh->capture2({timeout => 5},"hostname $_bx_master_hostname");
        if($cssh->error){
            $logger->error("update hostname on $_sh_ip to $_bx_master_hostname failed:$cssh->error");
            exit;
        }else{
            $logger->info("update hostname on $_sh_ip to $_bx_master_hostname success.");
        }

        $logger->debug("$_sh_ip,I am out.");

   };
   if ( $@ ) {
        $logger->error("task on $_sh_ip error:$@ ");
    }
}

本文由 ruyi 创作,采用 知识共享署名 3.0 中国大陆许可协议 进行许可。 可自由转载、引用,但需署名作者且注明文章出处。


共收到 0 条回复 perl
没有找到数据。
回复本帖 (需要登录)