配置Redis Sentinel,并使用Jedis连接

目标:
演示的3台redis主从服务器的连接信息,使用sentinel管理主从节点,并使用jedis连接sentinel
配置:

* 配置3个redis服务,其中7000做主服务器,7001、7002做从服务器
* 配置3个sentinel,端口分别为26379、26380、26381
* 使用jedis连接26379这个sentinel

注意

* 所有编辑的文件和输出日志均在/usr/local/bin目录下,生产中最好将日志文件移出
* 所有服务器均在本地测试,生产中要使用不同的服务器

演示:
编辑一个redis-7000.conf的配置文件,如下

 port 7000
 daemonize yes
 pidfile /var/run/redis-7000.pid
 logfile "7000.log"
 dir "/usr/local/bin/"

使用sed命令生成redis-7001.conf、redis-7002.conf

解决Windows下无法对docker容器进行端口映射的问题

微信截图_20170427183208

 

在安装了一个Windows下安装了docker,并尝试在其中运行Nginx、owncloud等服务,但映射完毕之后,在主机的浏览器中,打开localhost:port无法访问对应的服务。

用百度尝试了下,始终找不到答案,难道这个问题大家都没遇到过么?于是使用Google,并用英文检索,一会就找到了对应的答案。

The reason you’re having this, is because on Linux, the docker daemon (and your containers) run on the Linux machine itself, so “localhost” is also the host that the container is running on, and the ports are mapped to.

On Windows (and OS X), the docker daemon, and your containers cannot run natively, so only the docker client is running on your Windows machine, but the daemon (and your containers) run in a VirtualBox Virtual Machine, that runs Linux.

原来,docker是运行在Linux上的,在Windows中运行docker,实际上还是在Windows下先安装了一个Linux环境,然后在这个系统中运行的docker。也就是说,服务中使用的localhost指的是这个Linux环境的地址,而不是我们的宿主环境Windows。我们可以通过命令

Linux常用的几种上传下载命令

对于客户端和服务器都是Linux系统(或MacOS),他们之间的文件传递的命令是兼容的,使用命令scp就可以做到,需要注意的只是文件上传/下载的顺序
上传
scp -P port -r  local_folder user@remote_ip:remote_folder
下载
scp -p port -r user@remote_ip:remote_folder local_folder
对于客户端是Windows系统,可以使用secureCRT实现文件的上传/下载功能,目前常用的putty不支持Zmodem协议,所以无法完成这个功能。
这时,需要对secureCRT做个设置,指明文件上传下载的路径分别是什么,在option——session options中指明他们
命令如下:
rz:上传命令(Receive)
sz: 下载命令(Send)

DigitalOcean服务器ssh-key登录配置

     第一次购买DigitalOcean服务器,没曾想,它的登录方式与其他服务器很不同,它没有root默认的登录密码,而是选用了ssh-key的登录方式。
ssh-key登录倒也可以,只是它的配置稍微坑爹了点,稍微搞不好就造成永远也登录不上了,登不上了……
     参考了一些网上的文章,终于找到解决方法了,记录一下吧。

通过sed为账户配置信息

缘起

     由于业务需要,我管理了几台服务器,有客户过来开通账号时,就操作服务器,给他们开通。开通账号的很多操作都是机械性的,但是又非常浪费时间和精力。我维护了一年多的时间,居然一直都是手动配置,今天终于忍不住编写了一个脚本,让它自动帮我完成这一系列的操作,确实非常方便。

Debian安装ibus

自从买了这台mac pro以后,我那台Lenovo老爷机就闲置了,最近想用Linux处理些东西,于是有把这台机器拿了出来,决定将这台笔记本做成一个家用的NAS。

给这台PC装Debian 8 的时候,安装ibus出现了点问题,分别安装了ibus和ibus-pinyin,但一直无法使用,debian 8的一些升级导致习惯了wheezy版debian的我也有些摸不着头脑。以前也遇到过这个问题,并且只是鼠标“点点点”之类的操作,但当时因为懒,没有记录下来,导致现在还要重新踩个坑。下面记录一下,以防再次入坑。

安装ibus、ibus-pinyin

ibus是国外的拼音输入法产品,要用它输入中文还需要ibus-pinyin的支持,

sudo apt-get install ibus ibus-pinyin

如果sudo无效,你还需要提前安装sudo

# apt-get install sudo

安装sudo后还需要将当前身份具有root权限,需要在/etc/sudoers中写入内容:

wangminli ALL=(ALL:ALL) ALL

只有这样,个人身份才能正常使用sudo。

我当初忘记安装sudo,就直接配置/etc/sudoers(这时并没有这个文件),我强行写入当然没有效果。

 

配置ibus

安装完ibus后,默认下系统并不能找到这个软件,还需要简单配置一下,但我当时就是卡在了这一步。

在terminal下使用“ibus-steup”启动ibus,进入配置页面,将pinyin选为使用的输入法。

到“设置——键盘”下找到输入源,配置一下,系统就能找到ibus了。

 

这样就可以正常的输入中文了。

 

 

 

 

linux恢复被改动的文件权限

在Liunx使用中经常要修改一个文件的权限,文件是自己创建的还很清楚,对于Apache活Nginx等系统配置文件就要谨慎些了,如果改错,就会给系统安全带来隐患。Linux提供了getfacl和setfacl两个命令让我们备份和恢复修改过的文件权限。

废话少说,show your code,下面我创建了一个temp目录,并在其中添加了a1、a2、a3 三个文件,他们初始权限都是755,下面演示将他们修改为777,并恢复成755:

在Linux下制作iso启动u盘

Debian的Jessie出了beta2版,决定下载一个放到U盘随时使用。在Linux,可以使用dd命令方便的制作一个启动U盘。

首先找到U盘的位置,如果找不到,需要手动挂载。

[c]

sudo fdisk -l

[/c]

可以按照U盘的大小找到它的系统中的挂载位置,我的是4G U盘,在Terminal显示的的内容是“Disk /dev/sdb: 3.9 GiB, 4215275520 bytes, 8232960 sectors”,也就是说挂载的位置是“/dev/sdb”,一般挂载的位置是sdb、sdc、sdd….等位置。

下面使用dd将iso文件写入到U盘

[c]

dd if=debian-jessie-DI-b2-i386-CD-1.iso of=/dev/sdb bs=1M

[/c]

这样等待一会便会成功写入了。

dd是一个非常强大的功能。

 

Reference

用软碟通制作启动U盘与解压ISO到U盘有什么区别?

 

Debian安装b43博通无线驱动

相较于Windows,Linux更能带来很多乐趣。自己的笔记本一直是Windows系列,加上很多东西还需要在上面运行,全面替换成Linux目前不太现实,只好装Windows + Debian 的双系统。双系统安装成功了,没想到新的问题接踵而至:没有无线驱动,一直提示“缺少固件”。网上发现很多人也遇到类似的问题,反复尝试重复一直未果,那段时间较忙,没有时间倒饬它,一直在“Windows无线,Debian有线”的状态苟延残喘着…..

这段时间忙着搬家,新家只有无线网络,也就意味着我的Debian无法上网了,看来到了非解决不可的地步。