linux下修改hostid

网上有很多版本,总结了这几点。

1> 一个以16进制显示的int字符串;
2> 配置文件: /etc/hostid; 如果有值,输出, 结束。
3> 从hostname相对应ip的值经过某一算法,输出, 结束。

3.1 其中一个算法流传很多: ip地址转换成hex,然后将位置2143位置颠倒。

4>如果没有配置相对应的hostname相对应的IP, 输出00000000, 结束;
     
网上有几个列子:

例子1. c语言版:

  1. #include <unistd.h>
  2. int main(void){
  3. sethostid(0x12345678); /* 将hostid设为12345678(16进制) */
  4. return 1;
  5. }

经测试,第一次设置起到作用,并且/etc/hostid的值发生相对应的变化。以后的设置不起作用,/etc/hostid的值没有变。估计里面做了判断。

例子2. python直接修改根据hostname相对应的ip修改/etc/hostid 文件:

  1. #!/usr/bin/python
  2. from struct import pack
  3. a = '10.0.0.130'
  4. l =a.split('.')
  5. id = hex(int(l[1]))[2:]+'-'+hex(int(l[0]))[2:]+'-'+hex(int(l[3]))[2:]+'-'+hex(int(l[2]))[2:]
  6. id = '0x'+id
  7. hostid = pack("I",int(id,16))
  8. filename = "/etc/hostid"
  9. open(filename,"wb").write(hostid)

这个例子不适合我,我的hostname没有和ip关联,/etc/hosts以及/etc/hostname中都没有配置,同时不符合我的情况, 就没有测试。不过目测它是能起到作用的, 因为修改了配置文件。

例子3: 直接修改为某个hostid: aa0a1209。 一条命令:

  1. echo -ne '\x09\x12\x0a\xaa' > /etc/hostid

我的系统是小字节排序,知道原理,就直接倒序写了,c, python 闪一边去吧。

参考:

sethostid 函数: http://manpages.ubuntu.com/manpages/jaunty/man2/sethostid.2.html
python设置的例子: http://tdis.me/2013/02/fedora-18-linux-hostid-and-nuke/
c设置的例子: http://heweist.blog.163.com/blog/static/346429092010023111742342/

linux下修改hostid的更多相关文章

  1. 【修改端口号】linux下修改apache,nginx服务端口号

    一.linux下修改apache端口号 yum安装后,apache配置文件: /etc/httpd/conf/httpd.conf 找到apache目录下的 httpd.conf, 使用vi 打开,找 ...

  2. 嵌入式 Linux下修改MAC地址

    Linux下修改MAC地址 方法一: 1.关闭网卡设备ifconfig eth0 down2.修改MAC地址ifconfig eth0 hw ether MAC地址3.重启网卡ifconfig eth ...

  3. Linux下修改PATH的方法

    Linux下修改PATH的方法 1.直接在命令行里敲 PATH=$PATH:/path1:/path2:/pathN用户登出之后PATH恢复原样. 只是临时起作用. 2.修改~目录下bash_prof ...

  4. Linux下修改网卡IP、DNS和网关

    Linux下修改网卡IP和网关 建议通过终端字符方式下来修改 一.修改IP地址 vi /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 BOO ...

  5. linux下修改IP信息

    在Linux的系统下如何才能修改IP信息 以前总是用ifconfig修改,重启后总是得重做.如果修改配置文件,就不用那么麻烦了- A.修改ip地址 即时生效: # ifconfig eth0 192. ...

  6. Linux下修改字符集,转自

    以下转自http://blog.csdn.net/cyuyan112233/article/details/6539122 Linux下修改字符集 locale -a 查询系统支持的字符集 expor ...

  7. Linux 下修改Tomcat使用的JVM内存大小

    我的服务器的配置: # OS specific support.  $var _must_ be set to either true or false. JAVA_OPTS="-Xms10 ...

  8. linux下修改Apache配置文件

    linux下修改host文件host文件存放路径 /etc/hosts 可以用vim编辑 //Apache配置虚拟主机 /usr/local/apache/conf/extra/httpd-vhost ...

  9. Linux下修改主机名步骤

    Linux下修改主机名为gpdb 步骤一.运行vi /etc/sysconfig/network命令 NETWORKING=yesHOSTNAME=gpdb 步骤二.运行hostname gpdb命令 ...

随机推荐

  1. 使用SHA1、SHA2双证书进行微软数字签名

    微软是第一个宣布了SHA-1弃用计划,在2016年之后Windows和IE将不再信任SHA-1证书.正好我们公司的数字签名也到期了,索性就重新申请了sha256和sha1的新数字证书,用来给产品签名. ...

  2. android APP 中微信分享功能实现 的总结

    //花了很长时间最终完成了微信分享功能,中间走了很多弯路,在此做一下小结,希望对在应用中使用到微信分享的朋友有所帮助. 主要问题就是下面两个: 1.为什么运行了项目之后,微信分享只是闪了一下就没有了? ...

  3. Swift 与 Objective-C混合编程

    在Swift项目中想要同一时候加入Objective-C的库支持或者须要同一时候用Objective-C编程 在加入新的文件时选择Objective-C系统就会自己主动生成一个xx-Bridging- ...

  4. Swift学习笔记十三:继承

    一个类能够继承(inherit)还有一个类的方法(methods),属性(property)和其他特性 一.基本的语法 class Human{ var name :String init(){ na ...

  5. 阿里云CentOS配置iptables防火墙[转]

    虽说阿里云推出了云盾服务,但是自己再加一层防火墙总归是更安全些,下面是我在阿里云vps上配置防火墙的过程,目前只配置INPUT.OUTPUT和FORWORD都是ACCEPT的规则 一.检查iptabl ...

  6. Tomcat设置成NIO时,使用的线程池

    设置成NIO时, <Connector port="8088" protocol="org.apache.coyote.http11.Http11NioProtoc ...

  7. js遍历对象的数组

    遍历数组: 1.js关键for遍历 2.jquery提供each功能 ----------------------------------- $.each(array, function(){     ...

  8. 事务管理在三层架构中应用以及使用ThreadLocal再次重构

    本篇将详细讲解如何正确地在实际开发中编写事务处理操作,以及在事务处理的过程中使用ThreadLocal的方法. 在前面两篇博客中已经详细地介绍和学习了DbUtils这个Apache的工具类,那么在本篇 ...

  9. sql: oracle, for update和for update nowait的区别

    1. oracle for update和for update nowait的区别 http://www.cnblogs.com/quanweiru/archive/2012/11/09/276222 ...

  10. asp.net下用js实现弹出子窗口选定值并返回

    对应上一篇博客代码: 父页面: <head runat="server"> <meta http-equiv="X-UA-Compatible" ...