烹茶细论

Slowing down I look around


  • 首页

  • 分类

  • 归档

  • 标签
烹茶细论

使用rm -rf误删除文件后的恢复

发表于 2015-04-28 | 分类于 运维 | | 阅读次数

误删的原因是:想删除一个软链接,例如删除 /data/link,在data目录下,本来应该使用命令rm -rf link 结果使用tab键补齐,打成了rm -rf link/ 导致/data/link这个软链没有删除,他里面的文件倒是全部删掉了。泪崩

阅读全文 »
烹茶细论

Kazoo zookeeper python模块的使用

发表于 2015-04-08 | 分类于 开发 | | 阅读次数

kazoo是zookeeper的python模块,使用python编写的。使用python写运维平台的就可以用上

##1、安装
安装简单,不需要其他依赖

1
Pip install kazoo
阅读全文 »
烹茶细论

django_cron 定时任务

发表于 2015-01-31 | 分类于 开发 | | 阅读次数

最近在做saltstack的web管理界面,使用的是django框架,后台检测服务器状态需要用到定时任务,于是便引用了django_cron这个模块
使用方法如下:

1、pip或者easy_install安装django_cron

2、设置settings.py文件,在INSTALLED_APPS 里面添加 ‘django_cron’

1
2
3
4
INSTALLED_APPS = [
# ...
django_cron
]
阅读全文 »
烹茶细论

bind+mysql一键安装脚本

发表于 2014-10-31 | 分类于 脚本 | | 阅读次数

上次搭建完DNS服务器之后,发现再重新安装一台的话要重复相同的步骤,好麻烦。于是想着自己也写个脚本方便安装,然后就写了个非常粗糙的脚本。后期有时间再修改吧。暂时先用着。
环境:
系统:Centos6.5
需要先安装mysql,编译或者直接yum源安装 yum install -y mysql-server mysql mysql-devel

阅读全文 »
烹茶细论

Bind9+Mysql+mysql-bind搭建DNS服务器

发表于 2014-10-25 | 分类于 运维 | | 阅读次数
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#简介
DNS(Domain Name System,域名系统),是域名和IP地址互相映射的系统,通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析。
#背景
测试环境wifi由于测试需要经常需要更改的DNS解析,之前的DNS服务器是windows服务器,每次修改都需要远程进DNS服务器,打开DNS管理,添加主机.不能批量操作,不能批量导入.一次增加好多域名的话实在是很烦人的事情.所以,问题来了.
刚开始想到的是改成linux服务器,使用bind9.搭建好之后发现它的数据是以文本存储的,也就是添加修改域名我都要去修改一个文本文件.这样的操作跟windows的操作其实差不多.不是很方便也容易出错。所以抛弃这个方案.
后来发现了bind-mysql,这是一个bind连接读取mysql数据的一个底层驱动,这样就可以将数据存储到mysql数据库中,添加或者域名就修改数据库即可.然后写一个web界面管理。
<!-- more -->
##1、安装mysql数据库,yum源安装
```bash
yum install -y mysql-server mysql mysql-devel

##2、bind9编译
下载源码包之后,解压、然后需要修改源码包的代码

1
2
3
4
5
wget ftp://ftp.isc.org/isc/bind9/cur/9.9/bind-9.9.6.tar.gz
wget http://nchc.dl.sourceforge.net/project/mysql-bind/mysql-bind/mysql-bind-0.2%20src/mysql-bind.tar.gz
tar -zxvf bind-9.9.6.tar.gz
tar -zxvf mysql-bind.tar.gz
cd mysql-bind 查看READEME吧

然后开始编译前的修改工作

###(1)、拷贝mysqldb.c mysqldb.h 两个文件到bind解压的两个目录

1
2
3
cd mysql-bind
cp mysqldb.c mysqldb.h ../bind-9.9.6/bin/named/
cp mysqldb.c mysqldb.h ../bind-9.9.6/bin/named/include

###(2)、修改bind9解压目录下面的bin/named/Makefile.in文件

1
2
cd ../bind-9.9.6
vim bin/named/Makefile.in

Makefile
DBDRIVER_INCLUDES 的值是运行命令/usr/bin/mysql_config –cflags后的结果
DBDRIVER_LIBS 的值是运行命令/usr/bin/mysql_config –libs后的结果
mysql_config

(3)、修改bin/named/main.c文件
main

(4)、修改bin/named/mysql.c文件
把named改成include

1
2
#include named/mysqldb.h变成
#include include/mysqldb.h

然后开始编译

1
2
3
4
5
6
7
./configure --prefix=/usr/local/bind9/ -disable-openssl-version-check
make
make install
#初始化文件,生成named.root的根文件
echo 'asldjfkasjasdgfasdgsgsgsdfg' random /sbin/rndc-confgen -r random rndc.conf
rm -rf random
tail -n10 rndc.conf | head -n9 | sed -e s/#\//gnamed.conf ../bin/dig named.root

3、开始创建数据库,创建一个dns的数据库,在这个库里面创建一张test的表

1
2
3
4
5
6
7
mysql&gt; create database dns
mysql&gt; CREATE TABLE test (name varchar(255) default NULL, ttl int(20) default NULL, rdtype varchar(255) default NULL, rdata varchar(255) default NULL)
mysql&gt; INSERT INTO test values ('test.com',259200,'SOA','test.com. ns1.test.com. 200505101 28800 7200 86400 28800')
mysql&gt; INSERT INTO test values ('test.com',259200,'NS','ns1.test.com.');
mysql&gt; INSERT INTO test.com values ('ns1.test.com',259200,'A','2.2.2.2');
mysql&gt; INSERT INTO test values ('ns1.test.com',259200,'A','2.2.2.2');
mysql&gt; INSERT INTO test values ('aa.test.com',259200,'A','1.2.3.4');

看看mysql数据库的内容
mysql

4、配置named.conf
添加下面内容到named.conf文件

options {
allow-query { any; };
};
zone “.” { type hint; file “/usr/local/bind9/etc/named.root”; };
zone “test.com” { type master; database “mysqldb dns test 127.0.0.1 dnsuser dnsuserpasswd”; };

options 添加了让所有域名都能够查询,这样没有添加在区域里的可以到根去找
zone . 这个是添加根区域
最后一行是添加区域test.com 还有数据库的连接
dns 是数据库的库名
test 是表名
127.0.0.1 只本机,远程机器则填写远程机器ip
dnsuser 数据库用户
dnsuserpasswd 数据库用户的密码
以上内容要根据自身环境填写

5、启动bind9
debug模式启动
/usr/local/bind9/sbin/named -c /usr/local/bind9/etc/named.conf -g
没有错误的话,正常启动
/usr/local/bind9/sbin/named -c /usr/local/bind9/etc/named.conf -g
检查是否正常工作
dig
OK,没有错误,完成。

6、web界面
web1
新增和修改放一起,有数据修改,没数据新增,新增域名,没有区域则后台先创建区域。所以前台操作会简单易用

web2

烹茶细论

Ubuntu14.04下Pycharm3.4 字体渲染

发表于 2014-10-23 | 分类于 运维 | | 阅读次数

在ubuntu下搭建了django的开发环境,搭建过程十分简单,Pycharm的安装更简单,下载tar包解压并执行bin目录下的脚本即可,但是看着那个字体真心不爽。于是开始搜索调教。

1、安装打了渲染补丁OpenJDK
删除之前安装的java7,通过PPA安装JDK

1
2
3
sudo add-apt-repository ppa:no1wantdthisname/openjdk-fontfix
sudo apt-get update
sudo apt-get install openjdk-7-jdk
阅读全文 »
烹茶细论

韩国

发表于 2014-10-22 | 分类于 生活 | | 阅读次数

十一假期,想到国内的景点人山人海的实在是有点害怕,和朋友讨论之后打算出国看看,比较了下周边国家的形势,最后选择了似乎稍微安全的韩国。
1

阅读全文 »
烹茶细论

cacti迁移导致的中文乱码解决

发表于 2014-06-11 | 分类于 运维 | | 阅读次数

cacti需要迁移到新的服务器,迁移之后发现中文字体乱码
可能原因:

  • 新系统缺少中文环境支持
  • 旧数据库数据导出乱码
  • 新数据库导入乱码
  • 数据库取出数据展示乱码
阅读全文 »
烹茶细论

获取svn两个版本之间的差异文件

发表于 2014-04-21 | 分类于 脚本 | | 阅读次数

写脚本之前搜索了一下,刚好有类似脚本,稍微修改
http://xingqiba.sinaapp.com/?p=846
原作者莫怪哈

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
#!/bin/bash
#2014-04
#使用方法 ./svn_diff.sh svn老版本 svn新版本 svn路径 如 ./svn_diff.sh 3025 3030 svn://svn/***
#
#home_path 定义checkout svn项目的路径,可以是临时TMP目录
#diff_dir 差异文件存放的目录
#差异文件列表 log
svn_version_old=$1
svn_version_new=$2
svn_url=$3
home_path='/tmp/svn/'
diff_dir='/tmp/svn/difference'
svn_dir_name=`basename ${svn_url}`
svn_path=${home_path}/${svn_dir_name}
log='/tmp/svn/php/svn_diff.log'
Time=`date &quot;+%Y-%m-%d %H:%M:%S&quot;`
echo $Time &gt;&gt; ${log}
echo &quot;差异文件列表&quot; &gt;&gt; ${log}
if [ ! -d &quot;${diff_dir}/${svn_dir_name}&quot; ] ; then
mkdir -p ${diff_dir}/${svn_dir_name}
fi
if [ ! -d &quot;$home_path&quot; ] ; then
mkdir -p $home_path
fi
if [ ! -f &quot;${log}&quot; ] ; then
touch ${log}
fi
cd $home_path
svn co -r $svn_version_new $svn_url
if [ &quot;${svn_version_old}&quot; -ne &quot;${svn_version_new}&quot; ]; then
if test -e &quot;$diff_dir&quot;; then
echo &quot;已经存在差异目录&quot;
rm -rf ${diff_dir}/*
echo &quot;删除差异文件夹内容&quot;
else
echo &quot;创建差异目录&quot;
mkdir -p ${diff_dir}
fi
echo &quot;开始分析差异文件&quot;
cd $home_path
diff_add_num=`svn diff -r ${svn_version_old}:${svn_version_new} $svn_dir_name --summarize --no-diff-deleted | awk '$1~/A/' |wc -l `
if [ ${diff_add_num} -ne 0 ]; then
echo &quot;新增文件数量:$diff_add_num&quot;
diff_add_list=`svn diff -r ${svn_version_old}:${svn_version_new} $svn_dir_name --summarize | awk '$1~/A/ {print $2}'`
for add_file in ${diff_add_list} ; do
echo ${add_file}
FILE_NAME=`basename ${add_file}`
FOLDER_NAME=`dirname ${add_file}`
if test ! -e &quot;${diff_dir}/${FOLDER_NAME}&quot;; then
mkdir -p ${diff_dir}/${FOLDER_NAME}
fi
cp -r ${add_file} ${diff_dir}/${FOLDER_NAME}
echo ${add_file} &gt;&gt; ${log}
done
set_num=1
else
echo &quot;没有新增文件&quot;
fi
cd $home_path
diff_num=`svn diff -r ${svn_version_old}:${svn_version_new} $svn_dir_name --summarize --no-diff-deleted | awk '$1~/M/' |wc -l`
if [ ${diff_num} -ne 0 ]; then
echo &quot;修改文件数量:$diff_num&quot;
diff_list=`svn diff -r ${svn_version_old}:${svn_version_new} $svn_dir_name --summarize | awk '$1~/M/ {print $2}'`
for file in ${diff_list} ; do
echo ${file}
FILE_NAME=`basename ${file}`
FOLDER_NAME=`dirname ${file}`
if test ! -e &quot;${diff_dir}/${FOLDER_NAME}&quot;; then
mkdir -p ${diff_dir}/${FOLDER_NAME}
fi
cp -r ${file} ${diff_dir}/${FOLDER_NAME}
echo ${file} &gt;&gt; ${log}
done
set_num=1
echo &quot;结束&quot; &gt;&gt; ${log}
else
echo &quot;无文件修改&quot;
fi
else
echo &quot;版本号输入有误&quot;
fi
烹茶细论

LVM卷拓容

发表于 2014-04-21 | 分类于 运维 | | 阅读次数

一、为空余分区创建新分区
fdisk /dev/sda 按p打印当前分区情况,然后按n添加一个新分区;
输入p创建主分区,输入分区序号后两次回车将空间全部分给这个分区;
输入t转换分区类型;输入8e表示转换为linux lvm分区;
p打印当前分区查看是否创建分区;
输入w写入保存退出。
提示设备或资源忙并且在/dev中找不到sda3刚创建的分区则需要重启,重启后可见。(有更好的方式请留言)

阅读全文 »
123
zgssheng

zgssheng

26 日志
5 分类
30 标签
© 2016 zgssheng
由 Hexo 强力驱动
主题 - NexT.Mist