同步Lotus Notes Calendar至Google Calendar
记录如何同步Lotus Notes Calendar至Google Calendar
mount那些事
我现在使用的本子是公司发的T430,拿到手之后就把光驱卸了,插了块500G的硬盘。在windows下挂载对用户是透明的,在磁盘管理器里分配一下盘符就可以。而在linux下,做法有许多种,这篇文章就来聊聊linux下mount的那件事儿。
Screen初探
基本命令
- 起一个带名字的screen session:
screen -S sessionname
。或者在当前打开的session,ctrl+a
:sessionname <sessionname>
- session中的操作
ctrl+a
c
: 创建一个新窗口,并切换到这个窗口ctrl+a
A
: 重命名当前窗口ctrl+a
n
: 切到下一个窗口ctrl+a
p
: 切到上一个窗口ctrl+a
ctrl+a
: 在最近打开的两个窗口之间切换- 杀掉当前窗口:
ctrl+a
k
ctrl+a
d
: detach(退出)当前session- 恢复(回到)某个session:
screen -r sessionname
screen -x
- 完全杀掉某个session:
screen -X -S [session # or sessionname] quit
在ubuntu 1204上快速部署openstack
最近刚刚接触openstack,就琢磨着部署个环境试试。官方文档中推荐的DevStack安装方式很对我胃口,所有的安装配置都是用shell完成的,然后如其所说: 在运行stack.sh
的时候,可以读一读这个脚本都做了些什么。
在安装成功后,不妨读一读这篇文章做一个小demo,其中有几个tips:
- 如果你用的是32位机器,那么devstack默认上传的cirros 64位image是不能正确使用的(可能跟我的硬件虚拟化支持有关)。那就上传一个32位的image吧。(PS:我在一台很老的机器上配置就遇到了这个问题)
devstack中有个tools
目录,里面有个upload_image.sh
可以用来方便创建image。(具体的glance image-create
方式详见functions源码)tools/upload_image.sh http://download.cirros-cloud.net/0.3.1/cirros-0.3.1-i386-uec.tar.gz
在本地kvm运行CloudInit
CloudInit是最先由Amazon贡献,用于EC2的instance初始化,继而被各linux厂商(ubuntu,redhat)所采纳,用在各种linux的cloud image上。这篇文章基于Ubuntu 12.04,谈谈如何使用CloudInit以NoCould的方式初始化linux image,以及这种方式对我们可能有的启发。
Tips for shell newbie (2)
Tip 11. 函数的返回值
-
和大多数语言一样,返回值用
return
(如果不指定则返回最后一条语句的返回值)。但和大多数语言不一样,shell中返回值只能为整数。fun1() { return 100 # 正确 } fun2() { return "fun2" # 错误 }
-
调用时接收不能用
foo=fun1
(实际上这不是调用函数fun1
,而是将字符串fun1赋给foo)。得先调用fun1
,再用$?
得到返回值。foo=fun1 # 错误 echo $foo # 输出fun1 fun1 echo $? # 输出100
Tips for shell newbie (1)
Tip 1. 注意shell执行的具体类型
Shell脚本的第一行(Shebang line, e.g. #!/bin/bash
)指定了其执行的具体类型,dash/bash/ksh/…
等等,之间会有些细微的区别。如果你的脚本没有Shebang line,那么由系统变量$SHELL来决定其执行类型。
PS1:/etc/shells
中记录着系统可用的shell类型。所以当你发现同样的脚本在不同系统表现不同的时候,有可能是dash和bash(或是其他shell)之间的区别。
PS2:sh是一种POSIX规范,而众多的shell类型是它的实现。linux系统中的sh一般是个symlink,例如ubnutu中默认的sh就会指向/bin/dash。
Blog继续搬家
从今天起,位于lifebackup.cn的blog写作将全迁移至此,之后的某个时间域名也将直接指向此。Bye, wordpress!