MySQL 重设密码

某MC服把服务器上mysql的root密码居然给忘了。。。
于是。。。搜了一番,找到了这样的一个教程:
https://segmentfault.com/a/1190000000412194
一、适合ubuntu/debian的方式
这个方法只能用于ubuntu/debian 系统上,不过好处在于不需要停掉mysql的服务

cat /etc/mysql/debian.cnf

显示的内容是:

# Automatically generated for Debian scripts. DO NOT TOUCH!
[client]
host = localhost
user = debian-sys-maint
password = PASSWORD
socket = /var/run/mysqld/mysqld.sock
[mysql_upgrade]
host = localhost
user = debian-sys-maint
password = PASSWORD
socket = /var/run/mysqld/mysqld.sock
basedir = /usr

我们记下来其中的user和password
然后直接

mysql -udebian-sys-maint -p

回车后输入password里面的密码,成功进入~
然后直接:

use mysql;
update user set password=PASSWORD("newpassword") where User='root';
flush privileges;

全部执行完后就OK了~
二、比较通用的办法
这个办法需要停mysql,不过像是centos之类的可以用这个方法

service mysql stop

以安全模式启动mysql

mysqld_safe --skip-grant-tables --skip-networking &

然后直接登陆,不需要添加-p

mysql -uroot

成功登陆,然后改密码~

linux下指定访问某IP时走指定网口的方法

RT,因为正好应用上用得到,所以只好研究一番,搜了一下午搜不到资料,后来经过朋友暮雨菊苣的点拨找到了正确的姿势~
先说下背景:2台机器,姑且叫A和B。都是公网上的机器,且不在同机房(网段不同),机器A有两个公网IP(分别在eth0和eth1),B有1个公网网口。
要求是:访问机器B的公网IP是,走机器A的eth1口(不进行设置的话会走eth0)
这时候只需要用到route命令即可:

route add -host <机器B的IP> gw <eth1的网关>

回车即可,完事后可以直接输入route来显示一下当前的路由表,来确认一下是否加入到了里面
这里要注意,务必要用-host命令,我今天本来是找到了资料,但是却使用资料里面提到的-net命令,第二个下午犯的错是:找到的资料并没有告诉我gw后面要写什么,而我天真地写上了eth1的IP地址,而非eth1的网关,导致了路由生效后提示我直接找不到主机

Linux的快捷方式和文件的镜像状态的创建

这一块我之前真没接触过,毕竟都是实际操作随用随学的。。。
接触这个是因为有一个很大的文件,打算从本机拉到/var/www下面,方便另外一台服务器通过wget直接下载,复制还是需要一定时间的,直接超链接还是挺方便的
使用方法也很简单:
在需要创建的目录上输入

ln -s <文件绝对路径>

回车即可
不需要的时候直接在当前文件夹rm掉,即可rm掉这个快捷方式
不加-s的话是镜像的模式,会复制一份过来,然后其中一份变动的时候另外一份会跟着变动,至于删除了其中一份,另一份会怎样。。。我还真没试过。。。~

如何安装etherpad

不是很难的教程,不过很想吐槽windows双击就能运行,而linux需要自己装几个东西才行的这个蛋疼的事情。。。淦。。。
1、安装:
这里有部分教程:https://github.com/ether/etherpad-lite#installation
在这里我是debian 就选择:

apt-get install gzip git curl python libssl-dev pkg-config build-essential

然后你需要一个nvm来安装指定的版本(node v0.10.x)

git clone https://github.com/creationix/nvm.git ~/.nvm && cd ~/.nvm && git checkout `git describe --abbrev=0 --tags`

然后

vim ~/.bashrc

把这一行添加到末尾

source ~/.nvm/nvm.sh

:wq保存退出,然后关了SSH重开一下
然后安装node v0.10.37:

nvm install v0.10.37

 
接着确认一下版本是否是我们需要的

node --version

提示 v0.10.37 安装成功
接着从git上拉下来etherpad

git clone git://github.com/ether/etherpad-lite.git
cd etherpad-lite/bin/

启动应用:

./run.sh --root

 
教程就此完成,访问方式为:http://你的IP:9001/
简单的玩法就是这样,当然etherpad还支持mysql等高端玩法,由于我这里没有这个需求,所以暂时意义不大,有兴趣和有需求的话可以搜搜其他教程

使用socat做端口转发

由于工作需要,要部署一个minecraft的服务器(就是传说中的bilicraft~),部署好了后发现。。。狗日的江苏电信。。。南下到上海/广东方向的骨干有问题。。。只好做一个端口转发来让用户能顺利访问了
本来是打算用iptables来做的,结果发现了一个很神奇的问题,我自己的日本的服务器(就是现在blog用的这台)写好iptables后可以用,但是国内的服务器却不行,研究了2天,并不知道原因在哪里(主要是上面还有主站的业务,如果清掉所有的iptables重来的话我觉得我会死。。。)
于是自己google+请教了老大,得到了几个姿势:redir/socat/xinetd
总结了一下,发现了几个问题
redir:简单,但是不支持UDP,MC的服务端虽然很少见,但是仍然会用到UDP
socat:支持UDP,支持ipv6,只是老大的blog居然没写怎么用。。。我只好自己去搜(搜到后发现其实异常简单)
xinetd:功能强大,但是。。。好复杂,要写配置文件,反正只是mc,要求没那么高,没必要上这个
于是乎采用了socat
1、安装就不用说了,直接

apt-get install socat

2、起一个screen,没有的话安装一个

screen -S socat-tcp

3、起socat

socat TCP4-LISTEN:25565,fork TCP4:1.2.3.4:25565

其中:TCP4 #TCP端口ipv4协议
25565 #MC的端口,换成你要转发的端口即可
fork #多链接模式,当有一个人连上来后,复制一个同样的端口继续监听
1.2.3.4:25565 #目标IP和端口,不解释
按下回车后不会有任何提示,直接ctrl+ad退出这个screen即可,让他在后台静静的运行吧。。。
因为MC还需要一个UDP端口,然后重复2-3,TCP4改成UDP4然后起服务即可
这样就可以比较方便的弄好端口转发了~BC们的玩家又回到了流畅的日子了(笑

debian组软RAID的教程

为了追求高性价比的话RAID是个不错的选择,不过由于硬件RAID下性能的损耗还是挺大的,所以可以考虑开启JBOD模式(有些深度定制卡(比如DELL家的H730,基于LSI的芯片做的深度定制)叫HBA模式)后直接组一个软RAID,还是挺方便的。
这个教程是根据老大以前在CentOS上组软RAID的教程文章总结和修改而来,对应支持的系统是debian(我用的是8.2),用法上和CentOS 7上的大致相同(有个文件位置不同罢了,可以自行琢磨)
首先。。。你有RAID卡并且支持JBOD模式的话,开JBOD模式(不支持的话。。。。。。您老老实实组硬RAID吧)当然没有RAID卡,而是直接HBA卡或者是直接SATA/SAS接主板的话,总之认盘就可以了
其次,组建RAID:

mdadm -C /dev/md0 -a yes -l 0 -n 5 --assume-clean /dev/sd[a,b,c,d,e]

详解:
1、/dev/md* 这里输入数字~不重复即可
2、-l * 这里是RAID模式,0代表RAID 0,其他的就不细说了
3、-n * 这里是注明你有几块硬盘
4、/dev/sd[a,b,c,d,e] 这个是设定物理磁盘用哪些,可以用逗号“,”来选择,或者用[a-e]来表示 abcde 5个盘
接下来,格式化一下~

mkfs.xfs -f /dev/md0

不解释~各位自行选择格式
之后

mkdir /ssd
mount /dev/md0 /ssd

创建个文件夹,然后挂上去,同样不解释~
这样,你的RAID就可以使用了
这里有一个地方要注意一下,软RAID开机不会自动加载,所以需要人工把配置文件弄好
debian

mdadm --verbose --detail --scan > /etc/mdadm/mdadm.conf

centos

mdadm --verbose --detail --scan > /etc/mdadm.conf

其实也就是路径不同罢了~
然后 blkid 查看一下这个MD的UUID
复制一下
接着

vim /etc/fstab
新建一行,输入:
UUID=刚才复制的UUID     /ssd    xfs   defaults   0   0

格式基本上就是:UUID=(这个MD的UUID)空格 (挂载路径) 空格 (格式化的分区格式)空格 (dump值,默认为0) 空格 (pass数值,默认为0)
然后保存退出
这样,软RAID就彻底搞定了,这里顺带说一下查看状态的几个命令

mdadm -D /dev/md0

查看md0这个RAID组的详细状态,如果RAID故障的话,可以从这里查看是否掉盘

cat /proc/mdstat

这里可以简单的看一下这个md是哪些硬盘挂载的
RAID如果坏了,而且需要重启,怎么办
直接重启的话会导致找不到这个UUID的设备而进入死循环,所以需要。。。

vim /etc/fstab

找到出问题的md,注释掉,保存退出再重启
这点很重要,否则进不去系统别怪我没提醒。。。
更新一下,如果需要删除RAID的话,大致做法是这样的~:

mdadm -D /dev/md0

确认一下这个raid的信息(主要看有哪些盘,这里我们假设/dev/sdb和/dev/sdc组了一个r0)

mdadm -S /dev/md0

停止raid

vim /etc/fstab

找到你的raid的那一行,然后删除掉整行,防止机器找不到raid导致进不去系统

vim /etc/mdadm/mdadm.conf

找到你的raid的那一行,删除整行来删除配置文件

mdadm --zero-superblock /dev/sdb
mdadm --zero-superblock /dev/sdc

删除硬盘里的元数据
然后就OK了~

debian系统盘read-only file system的解决办法

由于业务上的需要,我们的系统盘之前一直是直接软RAID 0然后做系统的(因为RAID卡组RAID实际上会有一些性能损耗,损耗大到会对业务有一定的影响,所以直接软RAID0)。
然后15年下半年,偷懒选择了硬盘座克隆硬盘的方式快速写入系统,这样只需要把硬盘插上去,克隆完成后捅回服务器上改一下MAC即可
然后。。。。。。这批机器的系统盘,在工作了2个月后,大量的出现了read-only file system的情况。。。
一开始的做法是:直接重新安装系统,这样比较靠谱,但是很耗费时间,每台机器的流量都很大(最低也会有1个G,高的时候每台甚至都会到10个G的带宽占用),一台服务器下线就意味着压力分散到了其他服务器上
后来经过研究,看到了这一篇文章:http://www.111cn.net/sys/linux/59672.htm,然后决定跟着这篇文章的思路自己来试一试,正好有一台系统盘RO的服务器等着修
实际操作很简单:
我们是EXT4的分区,就直接执行

fsck.ext4 -y /dev/md0

接下来会有一串是否修复的提示(这里有个有意思的事情,有的服务器会自动一路确认然后修下去,但是有些服务器却不自动,等着你按下Y键)
修复完成后,直接reboot,重启机器
漫长的等待后(其实也就1分半)。。。系统起来了,然后touch测试了一发,成功写入~
这里有几点要注意的地方
1、分区格式一定要选对,直接df -Th即可看到
2、参考的文章建议你unmount后再修复,但由于我们是系统盘,又是raid0,所以不可能unmount,这次我也是死马当活马医直接/dev/md0 结果神奇的发现可以修复
3、如果你的机器已经重启,然后进入了busybox的话,不要慌,在这里一样可以执行fsck来修复硬盘,而且至少我这里修复了后就又正常的进入了系统~
4、我们的服务器有接好远程口,所以出了问题大不了就是重装一下系统,但是如果你的服务器并没有装远程口,机器上跑的又是关键业务的话。。。那还是建议你悠着点,毕竟数据更重要。
ps。。。这文章白天写完,下午让机房的人换硬盘的时候。。。。。。日了狗,一块系统盘被她们拔了。。。这回的ro彻底没法修了艸。。。

Huawei RH系列服务器iBMC卡配置教程

引用一下上一篇文章里写的第一句话。。。
“不配这东西,万一机器当掉了的话,会死人的哟。。。”
这次写的是华为的机器~由于华为的机器没有LCD屏幕,所以只有两种配置方法,分别是:
1、进入BIOS配置
2、在系统内配置
配置前的准备:1跟RJ45网线。。。然后把网线插到机器后侧的Mgmt口,然后上联交换机(或者是你的上联设备or直接接电脑)(不知道为啥不直接写iBMC而是写Mgmt。。。总之这就是管理口)

一、在BIOS里配置iBMC卡

仍然是开机,然后DEL进BIOS

你可以选择改中文,反正位置是一样的=w=
之后进入Advanced

然后选择IPMI iBMC Configuration

这里可以设置iBMC的开启模式之类的,一般出厂时默认的是上电后自动开启,
然后选择iBMC Configuration,进入后在里面配置IP/watch dog之类的

图里面分了3个部分,分别是:
1、设置iBMC默认账号的ID和密码
2、开启watch dog(建议关闭,很多定制系统可能会删除组件,导致主板认为机器已经司机从而导致被重启)(目前测试发现,部分机器(例如RH1288、RH5288系列)是默认关闭的,而RH2288系列似乎是默认开启的)
3、配置IP(IPV4的,IPV6的在下面)
在这里分别是:
手工配置 or DHCP
IP地址
子网掩码
网关
输入自己需要的进去即可,然后ESC 2次,退出到最开始的Advanced界面
最后只需要保存退出即可

不要直接一路ESC然后就YES了,那样是不保存退出。。。

二、从系统内配置

仍然是用到ipmitool工具,似乎是个通用的工具的样子=w=
流程如下:

apt-get install ipmitool #安装ipmitool工具
ipmitool lan set 1 ipaddr 1.1.1.2 #设置IP
ipmitool lan set 1 netmask 255.255.255.0 #设置子网掩码
ipmitool lan set 1 defgw ipaddr 1.1.1.1 #设置网关
ipmitool lan set 1 access on #配置用户
ipmitool user list 1 #列出当前所有用户列表
ipmitool user set password 2 “yourpassword” #设置用户列表里面的2号用户的密码为你的密码(一般默认的root用户就是2号用户,Huawei的默认密码为Huawei12#$)
ipmitool user enable 2 #启用2号用户的账户
ipmitool lan print 1 #显示网络设置,可以检查一下是否有网络设置错误

然后你的iBMC卡就在系统里面配置完成了,一般来讲IP配置完了后就可以直接PING通了=W=
当然你也可以偷个懒。。。写成这样就好了

apt-get install ipmitool; ipmitool lan set 1 ipaddr 1.1.1.2; ipmitool lan set 1 netmask 255.255.255.0; ipmitool lan set 1 defgw ipaddr 1.1.1.1; ipmitool lan set 1 access on; ipmitool  user list 1; ipmitool user set password 2 “yourpassword”; ipmitool user enable 2; ipmitool lan print 1;
#其实就是用分号写成一行了而已,各位运维工程师们可以直接复制然后找个记事本粘贴,改上自己所需的IP,直接一行粘贴进去一个回车就全部自动完成了~

以上就是iBMC的2种设置办法,总的来讲设置起来还是比较简单而且拥有多种设置方法还是比较好的。

Dell PowerEdge Rxxx系列iDRAC卡配置教程

不配这东西,万一机器当掉了的话,会死人的哟。。。
此教程列出了3种办法,分别是:
一、从LCD屏幕配置
二、从BIOS配置(此部分最常用,尤其是机房运维工程师帮机房内的客户的机器配置时)
三、从系统内配置

一、当机器带有LCD屏幕的时候,通过LCD屏幕配置

如果机器带有前置LCD屏幕的话,可以直接在LCD屏幕上配置,好处是随时可以操作,坏处是手指会痛。。。

二、从BIOS里面设置

这一部分非常常用,如果你的机器已经当掉而且只能让机房的人帮忙搞定的时候,就只需要让机房的人看此部分即可
而且从这里可设置的功能挺多的(比如可以设置通过网络口访问iDRAC之类的)
为什么要走网络口而不是iDRAC专用口,有以下几个原因
1)有些机器没有远程管理口(例如R420)这种的就只能走网口
2)有些机器需要买license(高级功能授权)才能使用iDRAC口(坑得一B,不过只是某些型号)
设置起来还是挺简单的
1)开机(或者重启)
2)F2进BIOS,然后选择iDRAC Settings

3)进去后选择Network

4)然后就可以做配置啦~
如果只是配置IP的话,直接跳到下面的IPV4 SETTINGS,在这里面设置IP,子网掩码和网关即可(也提供了DNS的设置,不过真不知道有啥用。。。)

如果需要调整网口的话,在IPV4上面有个NETWORK SETTINGS 里面有一个NIC Selection 在这里面可以选择Dedicated(也就是iDRAC专用口)或者LOM1-4(也就是网口)

三、从系统内设置

如果你的机器是类似R730xd那种没有LCD屏幕,而且服务器上也已经跑了业务且不能轻易停机的,则可以从系统内设置(windows我不知道行不行,centos我也没测试过,我只知道debian行,因为我们用debian而且我在系统里面设置过)
流程如下:

apt-get install ipmitool #安装ipmitool工具
ipmitool lan set 1 ipaddr 1.1.1.2 #设置IP
ipmitool lan set 1 netmask 255.255.255.0 #设置子网掩码
ipmitool lan set 1 defgw ipaddr 1.1.1.1 #设置网关
ipmitool lan set 1 access on #配置用户
ipmitool user list 1 #列出当前所有用户列表
ipmitool user set password 2 "yourpassword" #设置用户列表里面的2号用户的密码为你的密码(一般默认的root用户就是2号用户,DELL的默认密码为calvin)
ipmitool user enable 2 #启用2号用户的账户
ipmitool lan print 1 #显示网络设置,可以检查一下是否有网络设置错误

然后你的iDRAC卡就在系统里面配置完成了,一般来讲IP配置完了后就可以直接PING通了=W=
当然你也可以偷个懒。。。写成这样就好了

apt-get install ipmitool; ipmitool lan set 1 ipaddr 1.1.1.2; ipmitool lan set 1 netmask 255.255.255.0; ipmitool lan set 1 defgw ipaddr 1.1.1.1; ipmitool lan set 1 access on; ipmitool  user list 1; ipmitool user set password 2 "yourpassword"; ipmitool user enable 2; ipmitool lan print 1;
#其实就是用分号写成一行了而已,各位运维工程师们可以直接复制然后找个记事本粘贴,改上自己所需的IP,直接一行粘贴进去一个回车就全部自动完成了~

以上就是iDRAC的3种设置办法,总的来讲设置起来还是比较简单而且拥有多种设置方法还是比较好的。
附:iDRAC重置的方法
写这个是因为,密码忘了的话不能直接在iDRAC里面改(老版本的似乎可以,新版本的iDRAC不行),所以只能重置,不过重置还是挺简单的
1、进入iDRAC Settings,翻页到最下面,找到这个Reset iDRAC configurations to defaults,然后回车

然后选Yes,回车后即可

多MAC下通过统一私钥来达到1个key即可让所有电脑无密码SSH登陆

因为有两个MAC,然后之前一直是傻傻的各自生成一个KEY然后导入到服务器上的,直到。。。需要导入自己的公钥到工作用的堡垒机上的时候,被我们的老大吐槽了。。。
这次完全是靠MB点拨然后自行摸索到的技巧=W=并没有参照其他地方,算是原创吧~
按照MB的指点,生成的key跟你的电脑本身没有任何关系,只是“生成”了后在每次访问的时候自动会读取一下那个指定的文件而已。所以只需要保证你的每个MAC(LINUX亦是如此)的个人账户下的.ssh文件夹内的id_rsa文件(也就是私钥)一致即可,而公钥中的“计算机名”则也无所谓一直不一致,那个只是类似于标识生成的计算机名和用户名而已。
同步完成后,由于是从另一个计算机上过来的,所以这时候这个文件还不属于你自己,这个时候只需要chmod一下即可:

chmod 0600 id_rsa

然后就可以用啦~
感谢老大MB的指点=w=
另附:mac下无密码直接通过SSH登陆服务器