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. 轻量化ViewControllers,读文章做的总结

    推荐一个网站 http://objccn.io/ 我这两天才开始看 获益匪浅 看了第一篇文章 <更轻量的View Controllers>感觉写的不错 感觉作者 原文地址 http://o ...

  2. How to calculate the undo_retention time

    UNDO_RETENTION The undo_retention is a initialization parameter of the undo tablespace. The initiali ...

  3. Python基础入门教程

    Python基础入门教程 Python基础教程 Python 简介 Python环境搭建 Python 基础语法 Python 变量类型 Python 运算符 Python 条件语句 Python 循 ...

  4. rowid结构浅析

    select rowid from dual AAAAB0AABAAAAOhAAA rowid结构如下: 对象号    文件号   块号   行号 XXXXXX    XXX     XXXXXX X ...

  5. VS2008SP1中CDialogEx的使用问题及解决

    系统环境:Windows 7软件环境:Visual Studio 2008 SP1本次目的:建立一个CDialogEx的对话框 我们知道在VS2008SP1引进了BCG第三方控件,可以使MFC界面编程 ...

  6. Eclipse相关集锦第二季

    Eclipse相关的问题第二季开始了,这些问题都是我平时遇到的,然后记录下来备忘,帮助到别人最好不过了. 1.Unable to execute dex: GC overhead limit exce ...

  7. lua中打印所以类型功能实现table嵌套table

    lua中打印所以类型功能实现 本人測试 number.string.bool.nil.table嵌套table.userdata没问题 共享一下有什么问题请拍砖 代码例如以下 cclog = func ...

  8. ASP.NET - Eval使用自定义的方法

    <asp:Repeater ID="rep_allnews" runat="server"> <ItemTemplate> <tr ...

  9. sql: DUAL

    FROM <<Oracle.Database.11g.SQL>> dual is a table that contains a single row. The followi ...

  10. UC网盘被关停 将与阿里淘盘合并?(案例说明云盘的成本才是重点,技术不是问题;与巨头竞争是重点)

    UC网盘被关停 将与阿里淘盘合并? 二八2016-03-18 08:05:36阿里巴巴 网盘 产品阅读(0)评论(12) UC网盘项目组日前发布公告称将停止网盘存储服务,原因为配合国家对云盘传播淫秽色 ...