Write failed: Broken pipe

Write failed: Broken pipe

ssh远程连接阿里云centos服务器时,隔几分钟不操作,就会报错:

1
Write failed: Broken pipe   

解决方法:
在/etc/ssh/sshd_config文件中,添加如下配置: 

1
ClientAliveInterval 60   

重启一下就生效了。

docker容器启动iptables报错

错误信息

1
docker0: iptables: No chain/target/match by that name

重启docker

1
service docker restart

列出iptables的所有规则

1
iptables -L

可以看到iptables里面多出了Chain Docker的选项。
经验为:在启动firewalld之后,iptables被激活,此时没有docker chain,重启docker后被加入到iptable里面。

java工程启动 No Route to host

  1. 检查宿主机防火墙是否开启
    1
    2
    3
    firewall-cmd --state #查看默认防火墙状态(关闭后显示not running,开启后显示running)    
    systemctl stop firewalld.service #停止firewall
    systemctl disable firewalld.service #禁止firewall开机启动
  2. 确认project工程连接的postgresql服务是映射到宿主机的ip及port,而不是postgresql docker自身的ip及port
  3. 确认postgresql服务docker的pg_hba.conf文件,是否设置接收任意的ip发来的请求
    pg_hba.conf:
    1
    host    all             all             0.0.0.0/0               md5    
  4. 确认postgresql服务docker的postgres.conf文件的监听端口
    postgres.conf:
    1
    listen_addresses = '*'      # what IP address(es) to listen on;    

netstat -tunlp命令查看下监听状态是否正常

1
2
3
4
Active Internet connections (only servers)                                 
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:5432 0.0.0.0:* LISTEN 816/postgres
tcp6 0 0 :::5432 :::* LISTEN 816/postgres

参考

stackoverflow解决方法

docker部署web环境

postgresql

1
2
3
4
5
6
1. docker pull sameersbn/postgresql
2. docker run --name=postgresql -itd --restart always \
--publish 5432:5432 \
--volume /opt/postgresql/data:/var/lib/postgresql \
--env 'DB_USER=mymebyo_adm01' --env 'DB_PASS=mymebyo_adm01' --env 'DB_NAME=mymebyo' \
sameersbn/postgresql

redis

1
2
1. docker pull redis
2. docker run --name=redis -p 6379:6379 -v /opt/redis/data:/data -d redis redis-server --appendonly yes

redis-server –appendonly yes :在容器执行redis-server启动命令,并打开redis持久化配置

java web

1
2
3
1. docker pull java
2. docker run -it --volume /var/www:/var/www --publish 8082:8080 --link postgresql:mebyo --link redis:redis java /bin/bash
3. java -jar mebyo-1.0.0.jar

linux虚拟机磁盘扩容

问题点

安装了centos7的虚拟机,yum update时报错空间不足 No space left on device

VBoxManage modifyhd

在宿主机上的安装virtualBox的根目录执行resize命令进行扩容:

C:\Program Files\Oracle\VirtualBox>VBoxManage modifyhd E:\dockerVM\dockerVM.vdi --resize 35000

CentOS的LVM管理

查看磁盘状况

$ fdisk -l /dev/sda

将空余磁盘创建为SDA3

$ fdisk /dev/sda
n {new partition}
p {primary partition}
3 {partition number}

t {change partition id}
3 {partition number}
8e {linux LVM partition}
w

重启虚拟机

$reboot

查看当前Volume group

$ vgdisplay

创建/dev/sda3,根据VG Name:[centos],扩展LVM的逻辑卷

$ lvscan
$ pvcreate /dev/sda3
$ vgextend /dev/centos/root /dev/sda3

调整逻辑卷文件系统的大小

$ xfs_growfs /dev/centos/root
$df -h

OK了!

搭建gitbucket的docker环境

为了更方便简洁的部署各种服务器应用,我在社内环境安装了docker。
从社内直连github有时极不稳定。社内团队协同开发,搭建本地的git仓库,我选择搭建gitbucket。

$ docker search gitbucket

虽然没有docker官方放出的gitbucket镜像,但从列表里选stars最多也算靠谱点儿吧。

$ docker pull f99aq8ove/gitbucket

github也不网络稳定啊。。。下载两次都失败,寻找国内的镜像找到了daocloud。去daocloud官网去注册一下,然后配置docker加速器。

$ curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://5706b345.m.daocloud.io

该脚本可以将 –registry-mirror 加入到你的docker配置文件 /etc/default/docker 中。

配置好了之后,再次docker pull。成功!
启动镜像。

$ docker run -d -p 8080:8080 -p 29418:29418 -v ${PWD}/gitbucket-data:/gitbucket f99aq8ove/gitbucket

配置了映射端口8080是gitbucket的网页入口,映射端口29418是ssh的端口。
正常启动后,通过网页打开,显示正常。
创建用户组,创建新的repository。
在客户端local创建开发环境。

$ mkdir xxxdir
$ cd xxxdir
$ touch README.md
$ git add .
$ git commit -m "first commit"
$ git remote add origin [URL]
$ git push origin master

在进行push的时候,失败了,报错如下。

fatal: unable to access 'http://xxx.git/': The requested URL returned error: 503

查了一下,有可能是在gitbucket服务器之前,设置了http代理所导致的。设置git http操作的debug。

$ export GIT_CURL_VERBOSE = 1

再次git push查看,的确有从http代理向gitbucket服务器发出的请求。但我不知道在哪里配置了http代理了。。。
使用git config命令查看配置文件

查看仓库级的config

$ git config -local -l

查看全局级的config

$ git config -global -l

查看系统级的config

$ git config -system -l

查看当前生效的配置

$ git config -l

ok!将设置的http代理全部注释掉,git push成功啦!
社内gitbucket搭建成功!

git删除tag

同事在git上误打了tag,并且只删除了本地的tag,没有删除origin上的tag。管理员账户登录了git仓库的web页面,找到了这个tag但还是没有办法删掉。
ok!只有命令行开搞!

配置ssh config

webapi

删除tag

webapi

主要命令

ssh-agent
eval `ssh-agent`
ssh-add $git_rsa
git tag -d $tag_name
git push origin :refs/tags/tag_name

git撤销merge操作

使用git偶尔会遇到merge错代码的情形,这时需要撤销merge的操作。

$ git show bb46d15

commit id 是 bb46d15。
可以看到merge commit的parents次序。该次序从1开始,想保留哪个parent就指定它的序号。

$ git revert -m 2 bb46d15

2是想要保留的parent branch序号,其他的parent branch会撤销掉。
bb46d15是指定对具体的commit id进行操作。

开发团队跨平台开发环境集中管理化之vagrant

vagrant是一款用来构建虚拟开发环境的工具,非常适合各类开发语言的web应用,因统一安装本地开发环境浪费的人力成本及时间成本,以及不可避免的“work on my machine”错误,将永久告别~

安装virtualbox及vagrant

vagrant对virtualbox支持的非常好。但不匹配的版本,加载box会发生或多或少的问题。

我的工作环境的软件版本是:
vagrant 1.6.3
virtualbox 4.2.12-84980

添加镜像

安装好后运行以下命令可以添加vagrant官方的box镜像。

$ vagrant box add hashicorp/precise64

这是一个标准的64bit的ubuntu系统。
如果要下载其他系统的镜像,可以在这里下载:https://atlas.hashicorp.com/boxes/search

初始化开发环境

切换到box文件所在目录,加载box文件及初始化

$ cd ~/dev 
$ vagrant box add test test.box 
$ vagrant init test
$ vagrant up

ssh登录

mac下ssh登录,虚拟机目录 /vagrant 就是宿主机的 ~/dev

$ vagrant ssh
$ cd /vagrant

windows用户注意: windows终端需要使用ssh客户端,比如putty等。

其他设置

vagrant 初始化成功后,会在初始化的目录里生成一个 vagrantfile 的配置文件,可以修改配置文件进行个性化的定制。

vagrant 默认是使用端口映射的方式将虚拟机的端口映射本地从而实现类似 http://localhost:80 这种访问方式。
相比之下,host-only模式显得非常方便。打开 vagrantfile,将下面的注释去掉,便可以访问192.168.33.10机器上的服务了。

config.vm.network "private_network", ip:"192.168.33.10"

打包分发

当配置好开发环境后,退出并关闭虚拟机。对开发环境进行打包。

$ vagrant package

打包后,就会在当前目录下生成一个 package.box 的文件。可以分发这个文件给其他开发者。

集成预安装

vagrant 还提供预安装定制,打开 vagrantfile, 可以放开这些在文件末尾处有被注释的代码:

config.vm.provision "shell", inline: <<-SHELL
    apt-get update
    apt-get install -y apache2
SHELL

可以把需要安装的软件应用全部写在里面,在初次 vagrant up 的时候,虚拟机会预先执行这些命令。

如果不是初次运行,但又修改了这些命令。则可以进行重载vagrant。

$ vagrant reload --provision

也可以把这些配置写在shell脚本里面,让vagrant加载运行这些脚本。因此整个团队可以维护一个 vagrantfile 或者 shell 脚本,把这个文件放在github上,还可以监控它的版本,多么简单和容易啊!哈哈

常用命令

$ vagrant init  # 初始化
$ vagrant up  # 启动
$ vagrant halt  # 关闭
$ vagrant reload  # 重启
$ vagrant ssh  # ssh
$ vagrant status  # 查看状态
$ vagrant destroy  # 销毁
  • Copyrights © 2015-2021 小白兔
  • 访问人数: | 浏览次数:

请我喝杯咖啡吧~

支付宝
微信