使用 sed 命令批量替换文本内容

Published on:
Tags:
# run on linux
sed -i 's/正则表达式/替换后内容/g' hello.txt
# run on mac os x
sed -i "" 's/正则表达式/替换后内容/g' hello.txt

一键安装QuickLook增强插件

Published on:
Tags:
#>安装 brew-cask
brew install caskroom/cask/brew-cask
#>安装 quicklook 扩展插件
brew cask install qlcolorcode qlstephen qlmarkdown quicklook-json qlprettypatch quicklook-csv betterzipql qlimagesize webpquicklook suspicious-package

Ubuntu下,开启openvpn自动路由功能

Published on:

openvpn 自动路由的优点:

  1. 节省 VPN 带宽+流量, 也就是省钱;

需要用到的工具:

0. 一份有效的 openvpn 客户端配置文件:

0.1. 自己购买有效的 openvpn 帐号及配置文件(以 my-openvpn-config.ovpn 为例);

1. 路由表文件:

1.1. 从开源项目 chnroutes 下载路由表生成工具 chnroutes.py; 1.2. 命令行下执行如下命令, 生成方案一需要的路由表文件 routes.txt:

python chnroutes.py -p old
1.3. 命令行下执行如下命令, 生成方案二需要的路由表文件 vpn-up.sh 和 vpn-down.sh:
python chnroutes.py
1.4. 命令行下执行如下命令, 將方案二需要的路由表文件 vpn-up.sh 和 vpn-down.sh 复制到 /etc/openvpn/ 下:
sudo cp vpn-up.sh vpn-down.sh /etc/openvpn/

2. openvpn-2.3 源码:

2.1. 从开源项目 openvpn 下载 openvpn-2.3 发行版的源代码;

3. lzo 开发包:

3.1. 命令行下执行如下命令获取 lzo 开发包:

sudo apt-get install liblzo2-dev

实现方式一(手动添加路由信息到 openvpn 客户端配置文件)【未经过测试】:

  1. 使用任意文本编辑工具打开 my-openvpn-config.ovpn 文件, 將 routes.txt 文件内容追加到文件末尾;
  2. 使用此配置文件配置 openvpn, 并重新连接即可;

实现方式二(开启 openvpn 的 iproute2 特性, 自动添加路由信息到 openvpn 客户端配置文件)【经过测试】:

  1. 在安装好 lzo 开发包的前提下, 使用 –enable-iproute2 标记重新编译安装 openvpn: 1.1. 將 openvpn-2.3 源码解压到特定文件夹(以 openvpn-2.3-sources 为例), 命令行下执行如下命令:
    ./configure --enable-iproute2
    make
    make install
  2. 使用任意文本编辑工具打开 my-openvpn-config.ovpn 文件, 將如下内容追加到文件末尾:
    script-security 2
    up vpn-up.sh
    down vpn-down.sh
  3. 命令行下执行如下命令, 开启 openvpn 服务:
    openvpn my-openvpn-config.ovpn

注意:

  1. 在操作过程中如遇到 “permission deny” 字样, 导致无法正常执行, 请使用 sudo 切换以管理员权限执行;
  2. 若使用方案二执行”./configure –enable-iproute2”过程中遇到 “configure: error: lzo enabled but missing”, 请确认安装了 lzo 开发包;
  3. 方案二的路由脚本只能配合命令行使用(笔者测试的情况), 使用 network-manager-openvpn 等 GUI 配置工具的”导入”功能 .ovpn 文件后, 路由功能失效;
  4. 为什么要提出方案二呢? 因为 routes.txt 就目前来讲, 有近 4000 条记录, 通过方式一逐条添加效率非常低下, 影响性能. 而方案二则十分高效迅速;

更新:

2012.12.07

1. 开启 openvpn 自动导入帐号密码功能

1.1. 基于实现方式二的前期准备基础上, 使用如下命令配置编译 openvpn:

./configure --enable-iproute2 --enable-password-save
1.2. 继续执行”实现方式二”的 1.1.2 和 1.1.3 步骤即可; 1.3. 如何使用: 1.3.1. 將帐密信息保存在 .ovpn 文件统一目录下的文本文件中, 内容格式如下:
帐号
密码
1.3.2. 在 .ovpn 格式的配置文件中, 找到 auth-user-pass 这一行, 修改此行内容为如下内容即可:
auth-user-pass 帐密文件名.txt
1.3.3. 保存修改后, 使用最新的配置文件进行连接服务器即可;

如何重置Jenkins的管理员密码

Published on:

CentOS 下,如何重置 Jenkins 的管理员密码?

前提:

重置工作针对 Jenkins 自带的用户认证系统;

思路如下:

  1. 开启 Jenkins 注册帐号功能,任意注册一个帐号(test/test);

  2. 打开 Jenkins 的用户认证管理文件夹(/usr/lib/jenkins/users/),将 test/config.xml 中的 部分复制并替换到 admin/config.xml 文件的相应部分,重启 Jenkins 服务即可;

Git删除服务器端指定tag的方法

Published on:
Tags: git

假设需要删除服务器端 tag 为 v1.0 的版本, 则执行如下操作:

git tag -d v1.0 # 删除本地版本库中 v1.0 版本

git push origin :refs/tags/v1.0 # 删除服务器端版本库中 v1.0 版本

Git完全清除错误Commit的方法

Published on:
Tags: git

假设当前服务器端版本状态为master-->commit-01-->commit-02-->commit-03, 而管理者希望删除commit-03(hash:04f2350281f77d5bc14c2d6e634076ca17e0d059)的提交, 那么可以执行如下操作:

git reset --hard 04f2350281f77d5bc14c2d6e634076ca17e0d059
git push -f

用Maven执行release的基本步骤

Published on:
Tags: maven

DryRun 一次:

mvn clean release:prepare -DdryRun=true -X

如果没有问题了, 那么:

mvn clean release:clean -X

真正 prepare 一次:

mvn clean release:prepare -X

执行 release:

mvn release:perform -X

执行 release 成功后, 清除 release 产生的多余文件:

mvn clean release:clean -X