ucarp在Centos6(7)上做双机高可用

ucarp可以用来做IP failover,和keepalived的用法类似。更简单一些 小郜的主机可以搞一下 主机1 IP: 172.16.9.2 主机2 IP: 172.16.9.3 虚拟IP IP: 172.16.9.1 步骤如下: 首先在两台实体机上装好ucarp yum install -y epel-release yum install ucarp -y 主机1 $ cp /etc/ucarp/vip-001.conf.example...

dns-crypt的配置

为了防止dns污染,很有必要配一个干净的dns dns-crypt安装就不多说了,配置非常简单,就三行 cat /etc/dnscrypt-proxy/dnscrypt-proxy.conf ResolverName cisco Daemonize yes LocalAddress 127.0.0.1:5353 底下两行好理解,ResolverName cisco实在不明白什么意思,去官网查了一下,原来是公网上的开放dns的简称 地址:https://github.com/jedisct1/dnscrypt-proxy/blob/master/dnscrypt-resolvers.csv cisco就是Cisco OpenDNS的简称。搞定...

Raspberry Pi connect to Chip pro

SCLK : Serial Clock (output from master). MOSI : Master Output, Slave Input (output from master). MISO : Master Input, Slave Output (output from slave) SS...

Ubuntu下使用PL2303的usb转serial线

工作原因,要调试chip pro的片子,需要在Ubuntu上连接usb-serial的TTL线,芯片是PL2303 步骤如下: 连接usb到ubuntu机器 查看usb设备 dmesg|grep tty [ 0.000000] console [tty0] enabled [ 0.601118] 00:05: ttyS0 at I/O 0x3f8 (irq = 4, base_baud = 115200) is...

小vps下运行nodejs需要注意的gc

NodeJS默认64位机器GC是有1.4G内存,所以,如果是512或者128兆内存的小vps,立时就不灵了。 需要加参数 --max_old_space_size=128 --optimize_for_size 搞定。...

Dell R730XD h330控制器如何确定是哪块硬盘坏了

公司的Dell R720XD服务器是用来做Hadoop大数据的。 其中有两块300G的硬盘做Raid1,作为系统盘。 剩下3块硬盘是4TB,都是独立的,没有做任何Raid,单独做数据盘。 但是,所有的硬盘都被 Dell H330 的Raid控制器控制,于是3块硬盘呢,其实每个都是个 Raid0 去机房巡检的过程中,发现一个硬盘亮黄灯。 从idrac口可以看到坏了个硬盘 三块,到底是哪块坏了呢? 注意上图,修订是:GS0F,序列号是:Z1Z83DXH 我了个擦,所有硬盘都被h330接管,所以lspci什么也看不出来,只能看出是个lsi的MegaRAID!!! lspci|grep Mega 02:00.0 RAID bus controller: LSI Logic / Symbios Logic MegaRAID...

给老旧的CentOS系统设置yum

同事N年前买了个linode的主机,一直用,系统是CentOS 5.6 x86_64的。 现在想在上面装个软件,结果yum失效了,重装系统不可能,只能找个旧的yum源设置一下了。 源: http://vault.centos.org ,找到子目录 cat /etc/yum.repos.d/base.repo [base] name=base baseurl=http://vault.centos.org/5.6/os/x86_64/ gpgcheck=0 enabled=1 最后清掉一下缓存就可以了 yum clean all ...

Debian系嵌入式Linux内核编译

不谈过程,谈结果。Nanopi-neo的内核编译。 现在的内核和设备树已经分离了,所以可以某架构的通用一个核,而设备树不一样,单独编译。 比如Nanopi-neo和Orangepi-zero就可以通用一个核,尤其是嵌入式设备,通用核的机率更大。 有好几种内核文件: vmlinux 编译出来的最原始的内核文件,未压缩。 zImage 是vmlinux经过gzip压缩后的文件。 bzImage bz表示“big zImage”,不是用bzip2压缩的。两者的不同之处在于,zImage解压缩内核到低端内存(第一个640K),bzImage解压缩内核到高端内存(1M以上)。如果内核比较小,那么采用zImage或bzImage都行,如果比较大应该用bzImage。 uImage U-boot专用的映像文件,它是在zImage之前加上一个长度为0x40的tag。 vmlinuz 是bzImage/zImage文件的拷贝或指向bzImage/zImage的链接。 initrd 是“initial ramdisk”的简写。一般被用来临时的引导硬件到实际内核vmlinuz能够接管并继续引导的状态。 一般情况下make有好几个参数 单独编译zImage内核、模块以及设备树,zImage是压缩过的内核,dtbs是设备树(device-tree): make zImage dtbs modules -j8 make...

kvm的snapshot的管理

不行啊,需要不停的安装测试软件。 不停的反复回到初始的状态,没办法用快照把。 首先需要 shutdown kvm 虚机 virsh destory vis-168-85-40 先查查都有什么命令: virsh --help|grep snapshot Snapshot (help keyword 'snapshot') snapshot-create Create a snapshot from XML snapshot-create-as Create a...

kvm直接拷贝qcow2虚机文件到另一个虚机启动的问题

场景是这样的: 实体机是kvm,上面跑了A和B两台虚机。 A 机 IP 是 192.168.85.40,然后胡乱鼓捣,里面乱作一团,然后想恢复。 B 机 IP 是 192.168.85.47,全新安装。 想直接把 B 机的qcow2文件翻版覆盖A机,然后启动改个 ip 即可。 结果是不行,用 virsh console A 上去查看,发现 eth0 没了,多了一个 eth1 。...

如何批量查询Dell服务器的保修期

公司有100多台Dell的服务器,保修期参差不齐,什么日子都有。 麻烦来了,怎么查询一下服务器的保修期呢? 首先是批量发service tag号给dell官方问问,结果是给了一个网址,让自己查!!! http://www.dell.com/support/home/cn/zh/cnbsd1?c=cn&l=zh&~ck=mn 这个网址适合单台查,没有批量的入口,更糟糕的是,必须输入验证码。 没办法,先去注册个dell的账号,然后登陆。 打开chrome,登陆dell账号后,按F12打开调试,然后打开下面的网址: http://www.dell.com/support/home/cn/zh/cnbsd1/product-support/servicetag/FTQJY01/warranty 点到network,然后看左侧的下载资源 在wrapper.js下面,有个非常长的资源,点击之 点到右边的Header,往下拉就看到Header里面的Cookie了,拷贝下来。 首先编辑一个servicecode.txt文件,把所有机器的Service Tag号逐行粘贴进去。 然后编辑个python文件,注意把保存的Cookie内容替换到文件中'Cookie': 'XXXX'的XXXX部分。 然后运行即可,结果保存在result.txt中。 注意,这个程序比较脆弱,cookie过期,或者网络状况不好,都会出现read socket timout的现象。 #!/usr/bin/env python # -*- coding: utf-8...

qcow2映像文件的碎片整理

虚机运行久了,碎片漫天飞,导致整个qcow2文件变大,删除了虚机内的文件,qcow2不会随着变小,浪费了不少空间,如何做一下碎片整理呢? 很简单,首先停了虚机 mv myqcow2file.qcow2 myqcow2file.qcow2.bak qemu-img convert -O qcow2 myqcow2file.qcow2.bak myqcow2file.qcow2 这么转换一下即可。...

supervisorctl的用法

直接执行 supervisorctl 会进入 shell 界面: supervisorctl > status # 查看程序状态 > stop usercenter # 关闭 usercenter 程序 > start usercenter # 启动 usercenter 程序 > restart...

MySQL的备份优化

公司的MySQL服务器定时在凌晨4:00准时开始备份。 结果是会触发报警,net流量增高,cpu增高,磁盘io增高,这个是属于正常的,如何避免触发警报呢? 有4种方法: 一、优化io和cpu,让备份写磁盘的速度降下来,平稳的写入 nice -n 10 ionice -c2 -n 7 /usr/bin/mysqldump -S /var/lib/mysql/mysql.sock -uroot --single-transaction --quick\ --triggers -R --hex-blob --log-error=$db.log --databases $db > $basedir/$backdir/$db.sql 二、加快备份速度,多线程,让报警触发之前就结束备份...

supervisord与ghost博客

之前有一篇文章讲过用supervervisord怎么都无法将环境变量传到supervisord的command中去。 文章地址:http://www.rendoumi.com/supervisordlai-kong-zhi-nodejs/ 现在同样的问题反复,我们仔细研究下,不能粗暴的去动supervisord的启动脚本。 [program:ghost] command=env NODE_ENV="production" /root/.nvm/versions/node/v0.12.12/bin/node /root/www/index.js user=root autostart=true autorestart=true 最终方案是在command命令行之前加上env NODE_ENV="production"就可以了 古怪的是环境变量无法通过environment来设置,以及directory也无法生效。估计跟root的身份有关。...

React+es6入门

首先,React肯定是跑在服务器端,要求用到es6语法。 一、装nvm git clone https://github.com/creationix/nvm.git ~/.nvm export NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" 二、装npm和node nvm ls-remote nvm install v7.10.1 三、初始化一个项目,生成的package.json,保留三行主要内容,无关的可以删除掉 mkdir project1 cd project1...

打造一个好用的vim

人生就是没玩没了的杯具啊! 用了太多的东西,php/python/shell/rails,结果总是在服务器上/bin/bash,cd来cd去,目录结构复杂的话分分钟要崩溃的说,这里没提java,如果在服务器上用缺省的vi来编辑java代码,死掉的说!!! 没办法,打造一个至少可用的vim吧。 首先就是不能彻底替换掉原有的vi,原因如下:有的时候会用手机登陆服务器,那将情何以堪啊。 所以必须手动编译一个 wget ftp://ftp.vim.org/pub/vim/unix/vim-8.0.tar.bz2 tar xf vim-8.0.tar.bz2 cd vim80 ./configure --prefix=/export/servers/vim --with-features=huge --enable-rubyinterp --enable-pythoninterp --enable-luainterp make make install 注意,我把新的vim装到了/export/servers/vim,而且装了ruby/python/lua的支持。 第二,装好vundle git clone https://github.com/VundleVim/Vundle.vim.git...

CenoOS6下做无线AP

自己的笔记本是装了个CentOS 6的系统,然后上面跑了个Vmware,又装了Win7,然后接两个屏幕,小的是linux跑gnome,大的是Win7屏幕,这样干活的。 路由更是混乱无比,网卡有tun0 / wlan0 / eth0 ,没有弄br0,这是大前提。如果弄br0的话,得改一堆东西。 这样的话wlan0无线网卡不联网就空闲了,于是想把无线网卡做AP共享出来,给手机用,做法真是比较复杂,弄了2天才弄好,网上的教程都是莫名啊,不太适合CentOS。把做法记录一下: 首先不想改动已有的网络,那么桥接这条路就彻底断了,只能在无线网卡上做DHCP+NAT一条路了。 先检查网络: lspci -k | grep -A 3 -i "network" 03:00.0 Network controller: Qualcomm Atheros QCA9565 /...

kvm动态调整虚机内存

nagios报警,有一台实机的内存使用率达到极限了,告警信息如下: MEMORY CRITICAL : Mem used: 99.61%, Swap used: 95.98% 上帝啊,128G的内存居然被用光了!!! 登上这台机器,验证一下,发现确实啥也不剩了,没有任何缓存,而且连交换分区都用了 # free -g total used free shared buffers cached Mem: 125 125 0 0...

ssh证书登录之ecdsa

同事给了个公钥证书文件pub,让做ssh的证书登录 pub内容如下: ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBOoPPzVZkUUTPEEFueJzAxxxxxxxxEjiaskInSoMzJjEuo0zMZHVK8UqQPlFQcXPnW2+GgYigL2Q= 傻眼了一下,一般证书的公钥都是如下的格式: ssh-rsa AAAAB3NzaC1...... 查了一下,这个pub key原来是这么gen出来的: ssh-keygen -t ecdsa 剩下就简单了,证书登录方法和rsa的做法一样,放入~/.ssh/authorized_keys即可 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBOoPPzVZkUUTPEEFueJzAxxxxxxxxEjiaskInSoMzJjEuo0zMZHVK8UqQPlFQcXPnW2+GgYigL2Q= root@localhost 就可以凭密码登录了。 远程最好配一下登录所使用的key,跟rsa gen出的id_pub.key区分开来 vi ~/.ssh/config Host g git.coding.net HostName git.coding.net...