linux

pg_dump命令不输入密码

最近需要写个简单的脚本进行Postgresql数据库的定时备份,这才发现pg_dump命令必须交互式地输入密码。于是开始在网上找下解决方案,找到了以下两种方案:

1.使用export命令设置环境变量,将数据库密码赋值给PGPASSWORD

export PGPASSWORD="$put_here_the_password"

2.在用户主目录下创建一个.pgpass文件,将数据库用户名密码信息配置写入其中

localhost:5432:mydbname:postgres:mypass

随后将该文件设置权限为600即可(否则可能不会生效)。

使用以上两种方法,都可以让需要使用密码的命令不再需要交互式地输入密码。

参考:

http://www.postgresql.org/docs/current/static/libpq-pgpass.html

搭建自己的docker registry

平时我们使用的docker镜像都来自官方的docker index,由于国内连接docker官网速度太慢,而且有些包含自己代码的镜像也不好直接放到docker官网上,这个时候就需要考虑自己搭建一个docker index的源了。docker官方提供了docker registry这个工具,用于自建docker index,可在本地网络环境中保存和分享docker image,非常适合于公司内部进行docker的推广和使用。本文记录了安装docker registry的过程,作为一个笔记供大家参考吧。

docker随手记

试用了两天docker,感觉真的不错,顿时就有把自己的所有程序都容器化了的想法。现在docker火的不得了,网上的讨论非常多,但docker毕竟是个新事物,想要PK vm多年的历史经验还有很长的路。以下是一些最近使用docker时遇到的问题的总结,当一个cheat sheet放着吧。

Lftp put: Access failed: 521 Data connections must be encrypted的解决方案

最近使用lftp工具通过ftps协议来传输数据,可以成功登录但传输文件时却会爆出如下的错误:

Lftp put: Access failed: 521 Data connections must be encrypted.

出现这样的问题是由于lftp需要通过配置才能用于传输ftps的数据。解决这个问题的方法很简单,在当前用户的主目录下的.lftp目录中创建rc文件,如:

/root/.lftp/rc

在该文件中写入以下配置项即可:

set ftp:ssl-protect-data true

当然也可以修改使用lftp的脚本,加上这条命令,如:

lftp -u user ftp.test.com -e “set ftp:ssl-protect-data true;put -a file;exit”

insecure_pssh:支持密码列表的并行ssh

pssh(parallel-ssh)是linux系统管理员比较熟悉的一款并行ssh工具,很好用,但是却需要提前在各个服务器上配置好密钥认证访问。我本身不是很喜欢这种操作,对此我对这个项目进行了一些修改,让这个工具支持保存在管理机中的密码列表。

Linux下测试网卡流量的Shell脚本

很简陋的一个脚本,用于在linux下测试本机的网卡流量。使用时先修改配置,然后执行就可以了。
脚本中有两个配置项: eth_name=eth2 wait_time=100 第一个配置项为设置需要检查的网卡号。第二个配置项用于设置测试的时间,以秒为单位,由于脚本的执行也需要时间,所以wait_time设置的越长误差就越小。 以下是脚本全文: