Nolan's Blog

a PHP JS UI APP developer

Linux

家庭服务器svn向服务器提交更新的方案

本机 Win10
家庭服务器 Win10
远程服务器 CentOS

最近在家里搞了一台闲置主机作为HomeServer,原装正版Win10就懒得折腾了,毕竟只是用来存放文件以及SVN及DB备份用而已,顺道跑跑一些计划任务。

首先因为家里路由设置是每天重启一次,所以IP会变动,影响阿里云白名单,这个可以用过阿里云API来处理(后面也会用到),具体见阿里云各APISDK

然后就想着通过本地的SVN可以向第三天机器提交代码,这么做目的有2个

1.可是实现代码版本本地化,降低服务器放svn服务的风险,以及客户风险。

2.可以作为中继,利用hook再次作为子机,向其他svn主机提交更新,控制本地组频繁提交导致版本过多问题。

设置方案:

  1. 设置一个域名解析到家庭IP(会变)
  2. 利用IP查询接口查询当前外网IP,如变更则提交阿里云云解析API,更新解析地址。
  3. 利用Win自带的计划任务定时执行IP检测任务
  4. HomeServ安装VisualSVN,提供本地SVN服务
  5. 提交版本库等等(不累述
  6. 在远程服务端SVN CO本地版本库,记得这里要使用域名(当然,如果这里做一个计划任务获取最新IP也是可以的,方法很多)
  7. 设置HOOK
    • 下载 putty 完整包
    • 生成公钥密钥(不累述
    • 利用 puttygen 工具讲 openssh 的私钥转成 putty 的密钥
      • 选择 Import key 引入文件
      • 按 Save private key 保存ppk格式密钥
    • 公钥文件上传到远程服务器 ~/.ssh 下,权限文件夹700 / 文件600
    • 利用命令plink -v -batch host获取密指码 aa:bb:cc:xxxx
    • hook 编辑:plink.exe -hostkey "aa:bb:cc:dd.....ee:ff" -i "..\serv.ppk" root@IP地址 "export LANG=zh_CN.UTF-8; svn update /html/repo; exit;"
  8. 测试完成

第7步遇到的坑比较多,记录一下,因为不想给远程环境追加可执行SHELL的能力,所以采用了SSH链接,刚开始使用了自带的OPENSSL,单独执行完全没有问题,但是用HOOK执行,总是没有结果,会卡住。

所以怀疑是用户问题(事实也确实是),但因为Adminstrator无法登录(家庭版没有组策略,但是如果再去折腾组策略,似乎就是不断地挖坑了)所以看不到问题点,输出也没有内容。于是换了Plink,Plink给了正确的反馈,发现原来是提示是否保存服务端证书的提示卡住了,用命令行输入Y。。。?!#¥#@¥

输入Y是不可能的了。。。也没有-y的参数,就很尴尬了。

翻了一下plink参数,发现了 -hostkey 参数,所以,我只要有了那段密指码就能解决问题了,谷歌一下就找到了这个命令 plink -v -batch host,利用它就能获取到完整密指码了,就是上面的 aa:bb:cc:dd…

到此就可以顺利的让hook利用ssh连接到远程,做任何事情了。可扩展的功能就很多了 23333

继续阅读》

, , ,

Install / Setting vsftp in CentOS

1. Install
yum install vsftp

2. Config
vi vsftpd.conf


# turn off anonymous login
anonymous_enable=NO
# use userlist user for ftp
userlist_deny=NO
# open passive mode
pasv_enable=YES
pasv_min_port=10000
pasv_max_port=10010
# login banner
ftpd_banner=Welcome to nolanchou.com

3. Create a user for ftp.
useradd –s /sbin/nologin –d /ftp/home/path vuser 
passwd vuser

in new centos. we need chmod a-w /ftp/home/path

4. Edit userlist.
vi user_list

5. Virtual user if you need.
a. create virtual user list.
touch vuser
eg:
username
password

b. build users db.
db_load –T –t hash –f /etc/vsftpd/vuser /etc/vsftpd/vuser.db

c. edit /etc/pam.d/vsftpd, add lines.


auth required pam_userdb.so db=/etc/vsftpd/vuser
account required pam_userdb.so db=/etc/vsftpd/vuser

d. edit vsftp config.


guest_enable=YES # enable guest
guest_username=vuser # user vuser db
pam_service_name=vsftpd # use pam

e. set virtual user config path.
user_config_dir=/etc/vsftpd/vuser_conf

f. config the virtual user settings accoring to your needs.
touch username.


anon_world_readable_only=NO # view ftp path
anon_upload_enable=YES # allow download
anon_mkdir_write_enable=YES # create and delete dir
anon_other_write_enable=YES # rename or delete file
local_root=/ftp/home/pash/username # define user's root

继续阅读》

, ,

Ubuntu Install and Use Shadowsocks+privoxy

1. INSTALL Shadowsocks-qt5
The document and help on Github is here.
(Github 上有中文安装说明,但是要跳转几次。[传送门]


add-apt-repository ppa:hzwhuang/ss-qt5
apt-get update
apt-get install shadowsocks-qt5

2. Start Up
Setting server,port,username..(GUI). Not say more.

3. privoxy
INSTALL:
apt-get install privoxy
CONFIG:
vi /etc/privoxy/config
INSERT A NEW LINE
forward-socks5 / 127.0.0.1:1080 . (注意最后的点不是我失误
RESTART privoxy
service privoxy restart

继续阅读》

, , ,

Use proxychains to set up a proxy for some program in Linux

Install:
ubuntu apt-get install proxychains
Document: http://proxychains.sourceforge.net/howto.html

Settion:
Config files be loaded order by:
1) ./proxychains.conf
2) $(HOME)/.proxychains/proxychains.conf
3) /etc/proxychains.conf
So change the config in etc/ or create a new one in $home

Config:


## Order by list. auto skip the failed proxy
#dynamic_chain

## Order by list. not skip
strict_chain 

## Order by random
#random_chain

[ProxyList]
## Add the Proxy list, Eg: shadowsocks
socks5 127.0.0.1 1080

To use it:


proxychains ./sudio.sh 

继续阅读》

, ,

Backup 备份一下自己的Vim设置/插件

插件

ctags:
先生成tags文件,在命令行下进入到你的项目文件,执行命令:ctags -R,在当前目录下就会生成一个tags文件,生成tags数据库索引,在gvim中执行:


set tags=/home/cry/test/tags

需要进行函数名、变量名、结构名、结构成员补全时输入 Ctrl+X Ctrl+O, (
需要头文件名补全时输入 Ctrl+X Ctrl+I,
需要文件路径补全时输入 Ctrl+X Ctrl+F,
需要跳转到函数的定义处 Ctrl+] 或 Ctrl+左键单击

NERD_tree:一个文件管理工具

project:一个项目管理工具

winmanager:界面管理

Emmet.vim:zenCoding工具,前段必备

git-vim:git工具

xptemplate:代码片段补全 使用“Ctrl+l,”代码补全

下载:vim_2014_1.zip

继续阅读》

,

SVN的安装配置

一.安装subversion

首先安装服务端程序subversion1.x.x和客户端程序TortoiseSVN-1.x.x.xxxx(是两个网站)。subversion在服务器端客户端都需要安装,TortoiseSVN只要在客户端安装就行。TortoiseSVN的语言包下载和TortoiseSVN的下载都在其官网的同一页。

如果使用了eclipse并且用插件的话,则可以不用TortoiseSVN。

从 http://subversion.tigris.org/downloads/subversion-1.3.2.tar.gz 下载最新版的Subversion源码包解压后运行
或者直接yum啦

./configure –prefix=/subversion
make
make install

二.创建资料库

/subversion/bin/svnadmin create /home/sub_ku

继续阅读》

, , ,

Powered by WordPress.org.