msgbartop
泰州软件开发 Tony Lee 心生软件
msgbarbottom

20120308 Ubuntu 10.04安装Zimbra注意事项

1、最好是干净的系统,并且是官方支持的系统,为了追时髦,我在这上面浪费了不少时间

2、Zimbra需要用到22端口的SSH端口,若系统的SSH端口已经修改为其他,需要执行以下命令:

su
su - zimbra
zmprov ms server.domain.com zimbraRemoteManagementPort 2222

3、Ubuntu 10.04 默认缺少的包:

sudo apt-get install libperl5.10 sysstat sqlite3

4、服务器的hostname最好设置成你想要设置的域名,不然设置DNS的时候容易出错

5、一般服务器hostname会设置成mail.yourdomain.com,而Zimbra装好后通常使用@yourdomain.com作为后缀,所以在安装的时候,即使你DNS都是按照官方文档一步步做的,还是会提示MX记录错误。需要在安装的时候将域名改为yourdomain.com,这个修改不会对系统造成你预期外的问题

6、如果服务器在路由器或者防火墙后面,需要做split DNS,参考官方文档

7、Zimbra需要用到的端口:22 25 80 110 143 443 465 587 993 995 7071

8、Zimbra截止7.1.4版本似乎还无法直接在后台限制用户给某个域名发送邮件,实现该功能的方法是直接修改postfix的设置,参考官方wiki中搜索restrict,有好几篇说这个问题,找篇时间最近的照做就行了

20120308 Linux下用rm删除文件后磁盘空间不释放

如果被删除的文件还有进程在访问,那么rm删掉后是不会自动释放磁盘空间的。

lsof | grep deleted
kill掉找到的进程

不用rm清理文件的方法:
1、alert.log listerner.log等,用”>文件”的方式
2、归档日志用backup … delete input的方式

20120307 KVM虚拟机备份

1、基于LVM snapshot方式进行备份:LVM的snapshot默认是CoW的,不是立即备份,研究与实验了数个小时后放弃

2、KVM的虚拟机可以使用LVM作为存储,也可以使用文件方式存储,默认就是文件形式。只不过文件形式效率不高而已。所以可以将LVM逻辑卷转为文件:

qemu-img convert -O qcow2 /dev/vg_name/lv_name/ /var/lib/libvirt/images/image_name.qcow2

以上命令是不压缩的,如果想要压缩转换,在convert后加-c参数

3、基于文件的虚拟机有一个很cool的特性:支持基于一个已有的image文件创建虚拟机,并将所有改动部分写入另一个文件。例如:我装好了一台虚拟机,基本配置都完成了。我以后就可以根据这个文件创建n个虚拟机,所有虚拟机都不会影响到那个万能文件。

qemu-img create -b original_image.qcow2 -f qcow2 clone_image01.qcow2
qemu-img create -b original_image.qcow2 -f qcow2 clone_image02.qcow2

我还能创建一个文件的快照,用来快速恢复备份到创建快照的那一时刻

qemu-img snapshot -c snapshot_name vm_image_name.qcow2

20120306 Ubuntu 修改hostname

1、/etc/hostname
2、/etc/hosts:127.0.1.1

20120304 Ubuntu 切换源

cd /etc/apt/
sudo mv sources.list sources.list.us
sudo wget http://mirrors.163.com/.help/sources.list.oneiric
sudo mv sources.list.oneiric sources.list.163
sudo cp sources.list.163 sources.list

以上11.10下测试有效

20120304 Ubuntu网络设置

设置IP

sudo vim /etc/network/interfaces
auto eth0
iface eth0 inet static
       address 192.168.1.99
       netmask 255.255.255.0
       gateway 192.168.1.1
       dns-nameservers 68.100.16.25 68.100.16.30  68.105.28.12

设置DNS

sudo vim /etc/resolv.conf
nameserver 8.8.8.8
nameserver 8.8.4.4
sudo /etc/init.d/networking restart

双网卡设置默认网关

1、

sudo vim /etc/rc.local

exit 0前添加:

route add default gw IP地址

2、

sudo vim /etc/network/interfaces

末尾添加:

up route add default gw IP地址
#以下是路由信息
up route add -net 172.20.11.0/16 gw 172.20.10.254 dev eth1

端口转发

1、修改/etc/default/ufw中DEFAULT_FORWARD_POLICY 为 “ACCEPT”

DEFAULT_FORWARD_POLICY="ACCEPT"

2、修改/etc/ufw/sysctl.conf,注释掉以下两行:

#net/ipv4/ip_forward=1
#net/ipv6/conf/default/forwarding=1

3、修改/etc/ufw/before.rules,在最后添加

*nat
 :P REROUTING - [0:0]
 :P OSTROUTING - [0:0]
#实现将通过eth0进来的所有针对2222端口的请求转发到192.168.122.100的22端口上
-A PREROUTING -i eth0 -p tcp --dport 2222 -j DNAT --to-destination 192.168.122.100:22
#实现将所有192.168.122.X网段的请求通过eth0转发出去
-A POSTROUTING -s 192.168.122.0/24 -o eth0 -j MASQUERADE
#实现将所有来自192.168.122.100:22的请求通过eth0的2222端口转发出去
#待完成
COMMIT

4、

sudo iptables -F -t nat

执行以上命令时注意,如果有其他iptables规则,比如virsh默认的转发规则,会一起被清掉,如果没有手动添加相应的转发规则,则需要执行以下命令(存在虚拟机时):

sudo virsh shutdown 虚拟机名称
sudo virsh net-destroy default 
sudo virsh net-start default

5、

sudo ufw disable
sudo ufw enable
或者
sudo ufw reload

6、查看规则是否生效

sudo iptables -L -t nat

20120303 Ubuntu server 11.10 通过KVM安装 Ubuntu server 10.04 LTS

sudo vmbuilder kvm ubuntu --suite lucid --flavour virtual --arch amd64 -o --libvirt qemu:///system --hostname zimbra --mem 2048 --user your-username --pass your-password --dest /var/lib/libvirt/images/zimbra --addpkg openssh-server --mirror http://mirrors.163.com/ubuntu/ --ip 192.168.122.2 --bridge virbr0

其中网桥virbr0,在安装ubuntu的时候如果选择了virtual host,互自动配置好

2012-03-03 05:15:26,507 INFO    : Calling hook: preflight_check
2012-03-03 05:15:26,511 INFO    : Calling hook: set_defaults
2012-03-03 05:15:26,512 INFO    : Calling hook: bootstrap

等待……等待……等待……

估计是在下10.04的文件呢,网速还是比较给力的,从下面的输出来看,安装命令里面还是别带着装软件了,装好后再装吧

2012-03-03 08:30:59,689 INFO    : Calling hook: configure_os
2012-03-03 08:31:15,751 INFO    : update-alternatives: error: no alternatives for rsh.
2012-03-03 08:31:15,826 INFO    : update-alternatives: error: no alternatives for rlogin.
2012-03-03 08:31:15,901 INFO    : update-alternatives: error: no alternatives for rcp.
2012-03-03 08:31:16,811 INFO    : Creating SSH2 RSA key; this may take some time ...
2012-03-03 08:31:17,040 INFO    : Creating SSH2 DSA key; this may take some time ...
2012-03-03 08:31:17,315 INFO    :
2012-03-03 08:31:17,315 INFO    : Warning: Fake initctl called, doing nothing
2012-03-03 08:31:17,315 INFO    :
2012-03-03 08:31:17,316 INFO    : Warning: Fake initctl called, doing nothing
2012-03-03 08:31:19,727 INFO    :
2012-03-03 08:31:19,728 INFO    : Current default time zone: 'Etc/UTC'
2012-03-03 08:31:19,731 INFO    : Local time is now:      Sat Mar  3 00:31:19 UTC 2012.
2012-03-03 08:31:19,732 INFO    : Universal Time is now:  Sat Mar  3 00:31:19 UTC 2012.
2012-03-03 08:31:19,732 INFO    :
Extracting templates from packages: 100%
2012-03-03 08:32:03,290 INFO    :
2012-03-03 08:32:03,290 INFO    : Current default time zone: 'Etc/UTC'
2012-03-03 08:32:03,292 INFO    : Local time is now:      Sat Mar  3 00:32:03 UTC 2012.
2012-03-03 08:32:03,293 INFO    : Universal Time is now:  Sat Mar  3 00:32:03 UTC 2012.
2012-03-03 08:32:03,293 INFO    : Run 'dpkg-reconfigure tzdata' if you wish to change it.
2012-03-03 08:32:03,293 INFO    :
2012-03-03 08:32:35,754 INFO    : Updating certificates in /etc/ssl/certs... WARNING: Skipping duplicate certificate ca-certificat
es.crt
2012-03-03 08:32:35,928 INFO    : 0 added, 1 removed; done.
2012-03-03 08:32:35,929 INFO    : Running hooks in /etc/ca-certificates/update.d....done.
2012-03-03 08:32:39,074 INFO    : restart: Unknown instance:
2012-03-03 08:32:39,435 INFO    : start: Unknown parameter: JOB
2012-03-03 08:32:41,535 INFO    : Cleaning up
2012-03-03 08:32:41,536 INFO    : Calling hook: preflight_check
2012-03-03 08:32:42,317 INFO    : Calling hook: configure_networking
2012-03-03 08:32:42,333 INFO    : Calling hook: configure_mounting
2012-03-03 08:32:42,340 INFO    : Calling hook: mount_partitions
2012-03-03 08:32:42,341 INFO    : Mounting target filesystems
2012-03-03 08:32:42,341 INFO    : Creating disk image: "/tmp/tmpVZ8uGc" of size: 5120MB
2012-03-03 08:32:42,346 INFO    : Adding partition table to disk image: /tmp/tmpVZ8uGc
2012-03-03 08:32:42,696 INFO    : Adding type 4 partition to disk image: /tmp/tmpVZ8uGc
2012-03-03 08:32:42,697 INFO    : Partition at beginning of disk - reserving first cylinder
2012-03-03 08:32:43,120 INFO    : Adding type 3 partition to disk image: /tmp/tmpVZ8uGc
2012-03-03 08:32:43,127 INFO    : [0] ../../libparted/filesys.c:148 (ped_file_system_type_get): File system alias linux-swap(new)
is deprecated
2012-03-03 08:32:43,548 INFO    : Creating loop devices corresponding to the created partitions
2012-03-03 08:32:43,557 INFO    : Creating file systems
2012-03-03 08:32:43,560 INFO    : mke2fs 1.41.14 (22-Dec-2010)
2012-03-03 08:32:44,481 INFO    : mkswap: /dev/mapper/loop0p2: warning: don't erase bootbits sectors
2012-03-03 08:32:44,482 INFO    :         on whole disk. Use -f to force.
2012-03-03 08:32:46,973 INFO    : Calling hook: install_bootloader
2012-03-03 08:32:56,670 INFO    : Searching for GRUB installation directory ... found: /boot/grub
2012-03-03 08:32:56,721 INFO    : Searching for default file ... Generating /boot/grub/default file and setting the default boot e
ntry to 0
2012-03-03 08:32:56,722 INFO    : Searching for GRUB installation directory ... found: /boot/grub
2012-03-03 08:32:56,726 INFO    : Testing for an existing GRUB menu.lst file ...
2012-03-03 08:32:56,726 INFO    :
2012-03-03 08:32:56,727 INFO    : Could not find /boot/grub/menu.lst file.
2012-03-03 08:32:56,727 INFO    : Generating /boot/grub/menu.lst
2012-03-03 08:32:56,810 INFO    : Searching for splash image ... none found, skipping ...
2012-03-03 08:32:56,986 INFO    : grep: /boot/config*: No such file or directory
2012-03-03 08:32:57,085 INFO    : Updating /boot/grub/menu.lst ... done
2012-03-03 08:32:57,085 INFO    :
2012-03-03 08:32:57,358 INFO    : Searching for GRUB installation directory ... found: /boot/grub
2012-03-03 08:32:57,411 INFO    : Searching for default file ... found: /boot/grub/default
2012-03-03 08:32:57,417 INFO    : Testing for an existing GRUB menu.lst file ... found: /boot/grub/menu.lst
2012-03-03 08:32:57,557 INFO    : Searching for splash image ... none found, skipping ...
2012-03-03 08:32:57,591 INFO    : grep: /boot/config*: No such file or directory
2012-03-03 08:32:57,694 INFO    : Updating /boot/grub/menu.lst ... done
2012-03-03 08:32:57,694 INFO    :
2012-03-03 08:32:57,804 INFO    : Searching for GRUB installation directory ... found: /boot/grub
2012-03-03 08:32:57,813 INFO    : Calling hook: install_kernel
2012-03-03 08:33:09,096 INFO    : Done.
2012-03-03 08:33:11,734 INFO    : Running depmod.
2012-03-03 08:33:11,798 INFO    : update-initramfs: Generating /boot/initrd.img-2.6.32-38-server
2012-03-03 08:33:13,760 INFO    : Running postinst hook script /usr/sbin/update-grub.
2012-03-03 08:33:13,861 INFO    : Searching for GRUB installation directory ... found: /boot/grub
2012-03-03 08:33:13,896 INFO    : Searching for default file ... found: /boot/grub/default
2012-03-03 08:33:13,900 INFO    : Testing for an existing GRUB menu.lst file ... found: /boot/grub/menu.lst
2012-03-03 08:33:13,987 INFO    : Searching for splash image ... none found, skipping ...
2012-03-03 08:33:14,022 INFO    : Found kernel: /boot/vmlinuz-2.6.32-38-server
2012-03-03 08:33:14,102 INFO    : Replacing config file /var/run/grub/menu.lst with new version
2012-03-03 08:33:14,121 INFO    : Updating /boot/grub/menu.lst ... done
2012-03-03 08:33:14,121 INFO    :
2012-03-03 08:33:14,595 INFO    : Calling hook: post_install
2012-03-03 08:33:14,596 INFO    : Calling hook: unmount_partitions
2012-03-03 08:33:14,597 INFO    : Unmounting target filesystem
2012-03-03 08:33:17,993 INFO    : Calling hook: convert
2012-03-03 08:33:17,994 INFO    : Converting /tmp/tmpVZ8uGc to qcow2, format /var/lib/libvirt/images/zimbra/tmpVZ8uGc.qcow2
2012-03-03 08:33:23,323 INFO    : Calling hook: fix_ownership
2012-03-03 08:33:23,332 INFO    : Calling hook: deploy

安装选线始终没配对,装了三次,终于算是能够启动并且ssh登录了,不过到此为止只能实现在host上ssh登录guest,如何实现外网能直接登录guest,待续

20120302 Ubuntu 11.10 resolv.conf DNS 设置自动被清除

几乎寻遍整个互联网,没找到正确的方法,很多人说是Network Manager的问题,可是我搜了,根本没装network-manager,修改/etc/dhcp/dhclient.conf方法无效。

实在没办法了,暂时将这个文件设置成只读,等以后看能不能无意间找到原因了

edit:

设成只读都没用,都已经是444了,照样被改掉。找到系统日志/var/log/syslog,有如下记录:

dnsmasq[1088]: reading /etc/resolv.conf
dnsmasq[1088]: using nameserver 192.168.1.1#53

继续寻找解决办法

edit:

我用pgrep -l dns找到了dnsmasq 1088进程,kill掉了,也算是个不是办法的办法,同时pkill掉的还有dhclient3,反正用的都是static IP

20120228 [转]ubuntu下让play framework的应用开机自动启动 未测试

ubuntu下让play framework的应用开机自动启动

注意:因为上传文件必须有后缀名,所以加了.sh的后缀,下载之后去掉后缀

注意### BEGIN INIT INFO 和 ### END INIT INFO 部分 不能删除,不是单纯注释,是系统识启动时识别用到的。

脚本中的 myapp 和java home等目录替换成你的应用即可

rm *****.pid 语句应该可以删除,留在那里是为了防止play非法关闭,还留有pid文件,start命令不能正常启动的情况。

touch语句是为了测试看是否执行,可删除。

———————————————————————————-

update-rc.d -f myapp remove

是删除/etc/init.d/myapp 的所有符号链接,删除之后就不会自动启动了。

update-rc.d myapp defaults 98 8

的意思是 把 myapp这个启动脚本的启动顺序设置成 98. 关闭顺序(ubuntu系统关闭时的顺序)为8

根据各系统不同可以修改值。 查看/etc/rc0.d 到 /etc/rc6.d

看里面的 SnnXXXX 和 KnnXXX 这样的文件,合理安排启动顺序。顺序值越大,越靠后。

因为我的系统中 mysql的启动顺序位85, lighttpd的启动顺序为91,关闭顺序为09,

我要保证play在mysql和lighttpd后启动, 在 lighttpd前关闭,

所以设置 98 8

执行这个脚本,重启,则play能自动启动。

要测试 myapp 脚本是否可用,

运行 /etc/init.d/myapp start

/etc/init.d/myapp restart

/etc/init.d/myapp stop

myapp.sh:

#! /bin/sh 

# Comments to support LSB init script conventions 
### BEGIN INIT INFO 
# Provides: myapp 
# Required-Start: $local_fs $network $remote_fs 
# Required-Stop: $local_fs $network $remote_fs 
# Default-Start: 2 3 4 5 
# Default-Stop: 0 1 6 
# Short-Description: start and stop myappservice 
# Description: myappservice is myapp server 
### END INIT INFO 

JAVA_HOME=/myappsys/jdk/jdk1.6.0_24 
JRE_HOME=/myappsys/jdk/jdk1.6.0_24/jre 
CLASSPATH=".:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH" 
PATH="$JAVA_HOME/bin:$JRE_HOME/bin:/myappsys/mysql/mysql/bin:$PATH" 

. /lib/lsb/init-functions 

case "$1" in 
start) 
rm /myappsys/myappservice/myapp/server.pid 
/myappsys/play/play-1.1.1/play start /myappsys/myappservice/myapp 
touch /myappsys/play/myapp_start_2222222 
;; 
stop) 
/myappsys/play/play-1.1.1/play stop /myappsys/myappservice/myapp 
rm /myappsys/myappservice/myapp/server.pid 
touch /myappsys/play/myapp_stop_2222222 
;; 
restart|force-reload) 
/myappsys/play/play-1.1.1/play stop /myappsys/myappservice/myapp 
rm /myappsys/myappservice/myapp/server.pid 
/myappsys/play/play-1.1.1/play start /myappsys/myappservice/myapp 
touch /myappsys/play/myapp_restart_22222 
;; 
*) 
echo "Usage: /etc/init.d/myapp {start|stop|restart|force-reload}" 
exit 1 
;; 
esac 

exit 0

install_myapp.sh:

update-rc.d -f myapp remove 

cp myapp /etc/init.d/ 
chmod +x /etc/init.d/myapp 
update-rc.d myapp defaults 98 8 

sleep 100

20120228 vim cheat sheet 操作命令图解

vim cheat sheet

vim cheat sheet

1/1112345...10...末页 »