Posts

Showing posts from January, 2014

OpenShift宕机自动重启脚本

小博是运行在OpenShift云平台上面的,偶尔会遇到宕机的情况!
最近在复习shell,顺手写个shell脚本监测网站运行情况。

#!/bin/bash
#配置你的Openshift ssh用户名
sshid=52c21fde5973caed4d0003c0
#脚本运行部分
curl -I www.ansen.org 2> /dev/null | head -1 | grep -q 200
s=$?
let t=`date +"%M"`%10
if [ $t -eq 0 ];
then
  if [ $s != 0 ];
  then
      /usr/bin/gear stop 2>&1 /dev/null
      /usr/bin/gear start 2>&1 /dev/null
      echo "`date +"%Y-%m-%d %I:%M:%S"` restarted" > /var/lib/$sshid/app-root/data/web_error.log
  fi
else
    echo "`date +"%Y-%m-%d %I:%M:%S"` is ok" > /var/lib/openshift/$sshid/app-root/data/web_run.log
fi
链接到~/app-root/repo/.openshift/cron/minutely里面,每10分钟检测一次,如果网站宕机了,自动重启app
感谢@vmx的解答
关于gear命令,请查看
https://github.com/openshift/origin-server/blob/master/node/misc/bin/rhcsh#L106-L128

openSUSE 12.3安装Nvidia官方驱动

记录一下安装过程

1、下载相应的驱动至本地目录,比如我的放在:/home/ansen;安装依赖


sudo zypper install gcc make kernel-devel

2、禁用开源Nouveau驱动

# vim/etc/modprobe.d/50-blacklist.conf
 将 "blacklist nouveau" 添加到最后一行 (不包括引号)
3、重启

4、使用ctrl+alt+f1 切换到 命令行模式,root登陆后,依次执行下面的命令

#init 3

#cd /home/an #切换到驱动目录

#chmod +x NVIDIA-Linux-x86_64-319.23.run

#./NVIDIA-Linux-x86_64-319.23.run

安装完后重启

5、将用户加入video组

usermod -a -G video ansen #ansen是我的用户名

CentOS 宣布加入红帽公司

来自 CentOS 邮件列表的消息:CentOS 项目已加入红帽公司,作为红帽公司开源和标准团队(http://community.redhat.com/ ) 的一部分,培养快速创新平台之外的下一代新兴技术。将于 Fedora 和 RHEL 生态系统一起工作,我们希望通过新的平台进一步扩大社区服务。


我们已经发布了全新的 CentOS 网站:http://www.centos.org/
新计划将由新的 CentOS 管理董事会管理。最初的董事会由现有CentOS的核心团队成员包括:
- - Ralph Angenent
- - Tru Hyunh
- - Johnny Hughes JR
- - Jim Perrin
- - Karanbir Singh
此外还包括新成员:
- - Fabian Arrotin, 来自社区董事会提名
- - Carl Trieloff, Karsten Wade, and Mike McLean 红帽提名
董事会工作方针:公开、开放和包容。http://www.centos.org/about/governance/
CentOS 加入红帽后不变的是:
1. CentOS 继续不收费
2. 保持赞助内容驱动的网络中心不变
3. Bug、Issue 和紧急事件处理策略不变
4. Red Hat Enterprise Linux 和 CentOS 防火墙也依然存在
变化的是:
1. 我们是为红帽工作,不是为 RHEL
2. 红帽提供构建系统和初始内容分发资源的赞助
3. 一些开发的资源包括源码的获取将更加容易
4. 避免了原来和红帽上一些法律的问题
此新闻在 CentOS 和红帽官网上都已发布:
http://lists.centos.org/pipermail/centos-announce/2014-January/020100.html
http://www.redhat.com/about/news/press-archive/2014/1/red-hat-and-centos-join-forces




最近比较忙,现在才知道这个消息。

引用一下CU上@humjb_1983的评论:


1、红帽收编CentOS意欲何为?
---- 估计是因为目前CentOS的用户群庞大,对RHEL的收益带来了比较大的冲击,CentOS跟RHEL功能一致,免费,而且开发程度非常高,目前基于CentOS进行…

Shell公共函数:/etc/init.d/functions详解

在学习Shell的时候看到很多脚本都会有. /etc/init.d/functions 这一句,在网上查询了此函数的作用,故收藏在博客中


functions这个脚本是给/etc/init.d里边的文件使用的。提供了一些基础的功能,看看里边究竟有些什么。首先会设置umask,path,还有语言环境,然后会设置success,failure,warning,normal几种情况下的字体颜色。下面再看看提供的重要方法:
checkpid:检查是否已存在pid,如果有一个存在,返回0(通过查看/proc目录)
daemon:启动某个服务。/etc/init.d目录部分脚本的start使用到这个
killproc:杀死某个进程。/etc/init.d目录部分脚本的stop使用到这个
pidfileofproc:寻找某个进程的pid
pidofproc:类似上面的,只是还查找了pidof命令
status:返回一个服务的状态
echo_success,echo_failure,echo_passed,echo_warning分别输出各类信息
success,failure,passed,warning分别记录日志并调用相应的方法
action:打印某个信息并执行给定的命令,它会根据命令执行的结果来调用 success,failure方法
strstr:判断$1是否含有$2
confirm:显示 "Start service $1 (Y)es/(N)o/(C)ontinue? [Y]"的提示信息,并返回选择结果
详细分析:


# -*-Shell-script-*-

#

# functions This file contains functions to be used by most or all # 注释 :该脚本几乎被 /etc/init.d/ 下的所有脚本所调用,因为它包含了大量的

# shell scripts in the /etc/init.d directory. # 的基础函数。同时也被 /etc/rc.d/rc.sysinit ,例如 success、action、failure 等函数

#



TEXTDOMAIN=initscripts # 设置 TEXTDOMAIN 变量



#某些系统使用LC_MESSAGES shell变量所指定的消息类型. 其他一些系统根据

shell变量T…

OpenSUSE13.1来了,进击吧,绿蜥蜴!

Image
亲爱的贡献者们、朋友们和粉丝们:新版来啦!八个月的筹划、打包、添加功能、修复故障、测试然后修复更多的故障为您带来了自由开源社区所能提供的最好产物,带有我们绿色之触、稳定卓越的:openSUSE 13.1!将在北京时间2013年11月19日20:00准时发布



 稳定的
我们在 openSUSE 13.1 测试上投入了许多努力,通过我们自动化 openQA 测试工具的改进、一次全球性故障修复黑客节和更多活动。Btrfs 文件系统进行了认证的锤炼,虽然现在不是默认的,但已被认为对日常使用来说是稳定的了。这个版本也被选为了Evergreen 并扩展其生命周期为三年整。

网络的
这个版本引入了最新的 OpenStack Havana,带来了几乎 400 个新功能; 网络服务器管理员将受益于最新的 Apache、MySQL 和 MariaDB 更新。网络开发者将受益于最新的 Ruby 2.0 on Rails 4,带来了从核心类到 Rails 框架中更好的缓存的改进; 并且最新的 php 5.4.2 带来了一个内置的测试服务器。最终用户现在可以挂载 Amazon S3 空间为本地文件系统并使用改进良多、带来了更好的 Windows 域支持的 Samba 4.1。

发展的
openSUSE 向着 AArch64 迈进,使得 openSUSE 可用于开发下一代 64 位 ARM 设备。32 位 ARM 支持被显著地改善了,openSUSE 也有了一个特别的 Raspberry Pi 版本。这个版本也分发了 GCC 4.8,带来了新的错误汇报能力,最新的 glibc,支持了 AArch64、C11 和 Intel TSX 锁省略,以及新的 SDL2 和 Qt 5.1,后者为开发者带来了 QML 和 C++11 功能。

精致的
openSUSE 13.1 带来了改进良多的字体渲染,这归功于 Freetype 2.5 中的新字体引擎。YaST 被移植到了 Ruby,使得大量有经验的开发者可参与进来。在这个版本中,ActiveDoc 替代了 doc.opensuse.org 和 openSUSE 中多数已打包的文档,降低了贡献的门槛。
Preferences-system-performance.png 快速的
MESA 带来了 VDPAU 视频加速支持,32 位系统现在有一个优化的 glibc …

iptables匹配包的的状态解释,INVALID,ESTABLISHED,NEW和RELATED。

最近复习iptables,看包有这几个状态,瞬间就迷茫了,再次感谢万能的Google


摘自CU论坛(地址见末尾)


指定要匹配包的的状态,当前有4种状态可用:INVALID,ESTABLISHED,NEW和RELATED。

INVALID意味着这个包没有已知的流或连接与之关联,也可能是它包含的数据或包头有问题。

ESTABLISHED意思是包是完全有效的,而且属于一个已建立的连接,这个连接的两端都已经有数据发送。

NEW表示包将要或已经开始建立一个新的连接,或者是这个包和一个还没有在两端都有数据发送的连接有关。

RELATED说明包正在建立一个新的连接,这个连接是和一个已建立的连接相关的。比如,FTP data transfer,ICMP error 和一个TCP或UDP连接相关。注意NEW状态并不在试图建立新连接的TCP包里寻找SYN标记,因此它不应该不加修改地用在只有一个防火墙或在不同的防火墙之间没有启用负载平衡的地方。




原文:http://bbs.chinaunix.net/thread-1990048-1-1.html


准备启用新的图床--七牛

Image
现在博客用的是微软的Skydrive其实是很爽的,25GB的空间,不限流量,再加上微软的品牌,唯一的坏处就是,国内打开略慢,嗯略慢

以前就在V2EX上面看到很多vexer在推荐用七牛做免费的第三方储存


关于配额
  在官网看到有免费的配额,但是我找了半天没有找到有关免费配额具体的详细的配额,好吧,注册了看看
验证邮箱后终于在邮件里面看到了具体的配额说明了。。

10GB存储空间
下行流量免费(就是上传文件到七牛是不算流量的)
每月10G下载流量
每月PUT/DELETE 10万次请求
每月GET100万次请求
七牛基于refer防盗链,这样一来,对个人博客来说,够用了。
不过七牛的防盗链功能,个人觉得还不够完善,需要发邮件跟客服申请,详情看这里
关于API
     我看不懂,就不讨论了,不过我的程序猿朋友们说很不错的,大家可以看看文档:http://docs.qiniu.com/

关于域名
免费使用它的二级域名和三级域名 
支持域名绑定,但是有个条件,不备案不给绑。
 PS:备案后,还可以使用七牛的CDN
最后终于在后台找到了详细的收费价目表,这玩意藏得真深啊,怕别人知道你太便宜么?,如下图,顺便测试图片打开速度





 另外,七牛还可以通过邀请好友注册的方式来获取下载流量

邀请规则如下:

邀请一个好友增加5G的下行流量,最多可增加40G的下午流量

这是我的邀请链接,大家看着办吧:

http://go.ansen.org/7niu

http://go.ansen.org/qiniu


Ripple 送币

Ripple是一套分布式的货币支付和兑换协议,为了让大家更好的了解ripple,最近Ripple Labs对github用户有送币活动。


GITHUB账户可领2020个,价值70软妹币

领取要求:

1、2013年5月1日之前创建的GITHUB账户

2、在此日期前建立了公共代码库

3、公共库需要有活动记录

如果你满足条件,你可以继续往下看

首先在这里登入你的github账户:https://giveaway.ripple.com/

地址填 rD9K5QQSgeUUMGo7E9L66n1nopkkPeUqyE

口令随便填

之后获取码发给我或者在开始的页面下边的框里redeem一下

上面的操作是送给我,就当支持小博了:)

你也可以去网关卖掉提现。

交易教程:http://ripplecn.com/gateway/
提现教程:http://ripplecn.com/tixian




Shell十三问(一)

作者:網中人
整理:HAWK.Li
原文出处:http://bbs.chinaunix.net/forum/24/20031209/218853.html

简介
ChinaUnix 论坛shell版名为网中人的前辈于2004 年发布的精华贴


shell 十三问:

1) 为何叫做 shell ?

2) shell prompt(PS1) 与 Carriage Return(CR) 的关系?

3) 别人 echo、你也 echo ,是问 echo 知多少?

4) " "(双引号) 与 ' '(单引号)差在哪?

5) var=value?export 前后差在哪?

6) exec 跟 source 差在哪?

7) ( ) 与 { } 差在哪?

8) $(( )) 与 $( ) 还有${ } 差在哪?

9) [email protected] 与 $* 差在哪?

10) && 与 || 差在哪?

11) >; 与 < 差在哪?

12) 你要 if 还是 case 呢?

13) for what? while 与 until 差在哪?



1) 为何叫做 shell ?

在介绍 shell 是甚么东西之前,不妨让我们重新检视使用者与计算机系统的关系:

我们知道计算机的运作不能离开硬件,但使用者却无法直接对硬件作驱动,硬件的驱动只能透过一个称为"操作系统(Operating System)"的软件来控管,事实上,我们每天所谈的 linux ,严格来说只是一个操作系统,我们称之为"核心(kernel)"。然而,从使用者的角度来说,使用者也没办法直接操作 kernel ,而是透过 kernel 的"外壳"程序,也就是所谓的 shell ,来与 kernel 沟通。这也正是 kernel 跟 shell 的形像命名关系。

从技术角度来说,shell 是一个使用者与系统的互动界面(interface),主要是让使用者透过命令行(command line)来使用系统以完成工作。因此,shell 的最简单的定义就是---命令解译器(Command Interpreter):
* 将使用者的命令翻译给核心处理,
* 同时,将核心处理结果翻译给使用者。

每 次当我们完成系统登入(log in),我们就取得一个互动模式的 shell ,也称为 login…

Shell十三问(二)

作者:網中人
整理:HAWK.Li
原文出处:http://bbs.chinaunix.net/forum/24/20031209/218853.html

简介
ChinaUnix 论坛shell版名为网中人的前辈于2004 年发布的精华贴


《Shell十三问(一)》

-----------------------------------------------------------------------------------------------------------------
9) [email protected] 与 $* 差在哪?

要说 [email protected] 与 $* 之前,需得先从 shell script 的 positional parameter 谈起...
我们都已经知道变量(variable)是如何定义及替换的,这个不用再多讲了。
但是,我们还需要知道有些变量是 shell 内定的,且其名称是我们不能随意修改的,
其中就有 positional parameter 在内。

在 shell script 中,我们可用 $0, $1, $2, $3 ... 这样的变量分别提取命令行中的如下部份:


CODE:[Copy to clipboard]script_name parameter1 parameter2 parameter3 ...
我们很容易就能猜出 $0 就是代表 shell script 名称(路径)本身,而 $1 就是其后的第一个参数,如此类推....
须得留意的是 IFS 的作用,也就是,若 IFS 被 quoting 处理后,那么 positional parameter 也会改变。
如下例:


CODE:[Copy to clipboard]my.sh p1 "p2 p3" p4
由于在 p2 与 p3 之间的空格键被 soft quote 所关闭了,因此 my.sh 中的 $2 是 "p2 p3" 而 $3 则是 p4 ...

还记得前两章我们提到 fucntion 时,我不是说过它是 script 中的 script 吗? ^_^
是的,function 一样可以读取自己的(有别于 script 的) postitional parameter ,惟一例外的是 $0 而已。
举例而言:假设 my.sh 里有一个 fucntion 叫 my_fun , 若在 …

OpenShift宕机自动重启脚本

小博是运行在OpenShift云平台上面的,偶尔会遇到宕机的情况!

最近在复习shell,顺手写个shell脚本监测网站运行情况,



#!/bin/bash
#配置你的Openshift ssh用户名
sshid=52c21fde5973caed4d0003c0
#脚本运行部分
curl -I www.ansen.org 2> /dev/null | head -1 | grep -q 200
s=$?

let t=`date +"%M"`%10
if [ $t -eq 0 ];
then

if [ $s != 0 ];
then

/usr/bin/gear stop 2>&1 /dev/null
/usr/bin/gear start 2>&1 /dev/null
echo "`date +"%Y-%m-%d %I:%M:%S"` restarted" > /var/lib/$sshid/app-root/data/web_error.log
fi
else
echo "`date +"%Y-%m-%d %I:%M:%S"` is ok" > /var/lib/openshift/$sshid/app-root/data/web_run.log
fi

链接到~/app-root/repo/.openshift/cron/minutely里面,每10分钟检测一次,如果网站宕机了,自动重启app

感谢@vmx的解答

关于gear命令,请查看

https://github.com/openshift/origin-server/blob/master/node/misc/bin/rhcsh#L106-L128


将应用程序安装为Windows服务

安装为服务的好处:不用登陆系统就可以自动启动.

最近两天公司添加了几台下载服务器,为了减少维护成本,装了个同步软件BTSync

且需要安装为系统服务


安装过程

1、安装BTSync(不要勾选开机启动)

2、配置共享文件夹

3、下载nssm,并以管理员权限运行( http://nssm.cc/usage)

nssm install BTSync "C:\Program Files (x86)\BitTorrent Sync\BTSync.exe"
4、在运行里面输入service.msc,找到刚刚安装的服务,在属性面板的登陆选项卡中设置以你当前登陆账户的运行(BTSync每个不同账户的使用不同的配置文件)

5、设置好后,启动服务


Kindle 国内上线了

经过一次次的‘跳票’后,终于如约上线……

有要买的朋友 可以通过我的AFF链接过去

http://www.amazon.cn/dp/B007OZO03M/ref=nav-sa-kindlPaperwhite&tag=ansen00-23

于已无损,于人有益

准备购买




安装python软件包pip、distribute、nose、virtualenv

最近一直在看《Learn Python the Hard Way》,看到里面要求安装python的软件包,遂在网上找到相关教程,其实很简单的说。。。

在Python开发中为了对项目进行管理和调试,必须安装一些特定的软件包。据说在业内,他们把这个叫做yak shaving。也就是说,你在做一个很酷很绚丽的Python项目之前,必须做的一些枯燥无味的准备工作。比如,先创建骨架目录。比如要安装一些软件包。比如,要安装一些为了安装这些软件包而安装的软件包安装工具。好吧,在不同的系统下,这些软件的安装过程还不尽相同,真麻烦。
好吧,吐了一大堆苦水,开始说说这些都怎么做。


要安装的软件有四个:pip,distribute,nose,virtualenv

当你的系统是Linux时:

这里以CentOS为例。

首先确保自己的Linux已经安装了Python。(废话)
然后安装setuptools(安装那四个软件的工具)。


su -

wget http://pypi.python.org/packages/2.7/s/setuptools/setuptools-0.6c11-py2.7.egg

sh setuptools-0.6c11-py2.7.egg



然后安装这四个软件,从pip开始。一切都那么简单了。


wget --no-check-certificate https://pypi.python.org/packages/source/p/pip/pip-1.4.1.tar.gz

tar zxf pip-1.4.1.tar.gz

cd pip-1.4.1

python setup.py install

等待执行完毕,在终端中敲一个pip,如果有提示信息出现,就证明pip已经装好。继续下面三个。


pip install distribute

pip install nose

pip install virtualenv

搞定。



摘自:http://www.dkjiaoyang.com/2/post/2013/03/python.html


关于网盘的那点事儿

Image
我属于那种爱折腾的人,三天两头的试用各种新奇的系统,脑袋一热就不顾后果的全盘格式。所以我习惯把我的学习资料放在网盘里。所以最近两三年里,我使用过盛大的everbox、金山的T盘、曾经火热的115网盘、华为的dbank等诸多国内大品牌大公司出品的网盘,然而每当我刚刚把文件传上去的时候。各种蛋疼的事情就紧随而来,比如:115禁止分享了、everbox要关闭了(虽然现在仍旧运营着)。
近大半年来我一直在使用着百度的网盘,也就是现在的百度云。今天在准备下载我的资料时,本来打算分享了用下载工具下载,结果发现

然后我在我的分享里面发现 几个红字 审核失败

心一下就凉了,果断的放弃这个网盘!
近几年抱着学习的目的去收集资料(虽然大多我都没有看),也收集了近15G的资料;今天打算先把资料下载到本地吧。
在群里面问了一下,群友推荐Dropbox,Dropbox确实很好,但是对我来说有一个问题,空间不够;也有人推荐Skydrive,说到Skydrive我是比较熟悉的了,因为我博客一直将Skydrive当作图床用。正好我还有一个25G闲置的账号,先用着吧。再慢慢把Dropbox的容量弄起来,以后真心不敢用国内的网盘了。
打个广告: http://db.tt/uj6kj8AQ 这是我的DropBox推荐链接,注册一个我增加500M,有空的朋友帮忙注册一下。十分感谢


Java 开源博客——B3log Solo 0.6.1 正式版发布了!

Image
Java 开源博客 —— B3LOG Solo 0.6.1 正式版发布了!欢迎大家下载
该版本主要是改善细节体验,并加入了一款 Metro 风格的皮肤。 
特性

基于标签的文章分类
Ping Google Blog Search Engine
博客/标签 Atom/RSS 输出
Sitemap 输出
评论回复及邮件提醒
自定义页面
置顶/相关/随机/站外相关文章
文章、页面永久链接(Permalink)
文章草稿夹、签名档更新提示
缓存管理
多用户
多语言
换肤
插件
MetaWeblog API
数据备份/恢复
高性能,低配额

Release 0.6.1 - Aug 25, 2013

200 找回密码feature
221 最新日志、标签最新日志feature
261 自动保存草稿功能feature
241 RSS 订阅输出的时间不对bug
249 BAE 版发送邮件问题bug
252 更新用户密码问题bug
253 文章列表不显示bug
269 获取加密文章安全问题bug
264 新增 metro 风格皮肤skin
250 Markdown 编辑器预览改进enhancement
254 移除“偏好设定”中的“博客地址”配置enhancement
259 初始化第二页面只能用鼠标点击enhancement
260 JDBC 性能优化enhancement
263 timeline 皮肤改进enhancement
265 浏览器兼容性提示改进enhancement
268 使用 Latke IoC 容器enhancementdevelopment
271 访客登录跳转enhancement
275 访客登录不允许查看加密的文章enhancement
276 模版变量 gravatarenhancement
267 替换日志组件为 slf4jdevelopment


安装
请看这里。部署生产环境时请仔细配置 latke.properties。
虽然配置复杂了点,但是也带了一些好处,例如静态资源分离。

升级
如果您使用的是 GAE 版

部署至 GAE
登录 GAE 管理后台,进行版本切换(切换至 061)
等待自动升级完成(5 分钟以内,也可以手动运行:/upgrade/checker.do)

如果您使用的是本地版,则直接替换部署目录即可。
如果您使用的是 BAE 版,则建议新增版本并上传部署包,然后点击“上线”,并手动运行 /upgrade/checker.d…

Popular posts from this blog

Openvpn客户端路由配置

解决Sublime Text 无法显示韩文