Cooperative Linux

Posted by Cofyc, on May 16, 2008, 9:05 pm

Cooperative Linux(coLinux):www.colinux.org

用coLinux进行虚拟化(中文),是将安装、配置和使用Cooperative Linux的。

安装教程:Using coLinux to install Linux(中文)

谢谢e6nian

P.S. 太极图标很有意思。

andlinux: www.andlinux.org

0 comment - Tags: Tai Chi, Linux, Cooperative

备份系统及系统管理在linux上

Posted by Cofyc, on November 17, 2007, 6:11 pm

昨晚一整夜,都在自己PC上的300G硬盘上奋斗-_-~。重新规划了使用,将硬盘分成了三个区:

 

  • C Partition: 50G, 安装Vista
  • / Partition: 30G, 安装Ubuntu
  • /store Partition: 220G, 专门用于存储的Partition,非系统区

 

其中n个小时,是在给系统备份和恢复文件。得到的教训就是:即使你足够自信,任何情况下也要给自己留一条后路。

在昨晚因为自己的不成熟操作,付出了不少代价。

  • 其中之一,就是一次rm的使用中,多了一个空格,导致误删了不少文件。
  • 其中之二,滥用root权限!许多时候为了方便,但关键时候却会让你付出极大代价。
  • 其中之三,将tgz格式的备份文件放到了vfat格式的移动硬盘上,导致最后无法解压开,使用gzip.org上提供的工具,也是不行(至此不明白为什么,mv到vfat盘上难道使用的是ASCII文本传输?,但为什么使用那个fixgz工具却修复不了了!)。

 

今天,就一直在想,怎样做好一个系统的日常备份,以方便关键时候能有一条后路。

当然,最好的是先将这本Linux System Administration - O'Reilly看完。(我还只看了个开头-_-!)

但就我个人对自己的日常使用的系统上的备份考虑,我做了一下几点:

  • 一是,有一个专门存储的Partition: /store
  • 二是,一个日常备份的脚本
  • 三是,吸取教训及不要滥用root权限。

对一般用户而言,将资料与系统分开,及定时使用备份工具将home文件夹备份就足够了。但,如果你需要一些特殊备份,比如/etc下的配置文件,数据库或者定制一些需要备份的内容。可以考虑写一个完善的脚本,添加到cron中定时执行,将一些非常重要的资料且不是很大的资料进行每日备份。但在放心它去工作的前,一定要经过测试

 

以下是我的做法,注意这只是示例! 实际中,需要作更多的考虑。据情况了解tar, rsync, ssh等工具的用法。

 

利用tar将文件打包及数据库备份:

#!/bin/bash

# Backup Script

# Author: Peter Fu

# Site: http://www.peterfu.net

 

INCLUDE_DIRS="/store/repos $HOME/.mozilla $HOME/.vimrc $HOME/www /etc/apache/* "

EXCLUDE_DIRS="..." # 将不需要备份的文件剔除,比如.mozilla中的cache文件夹

 

# Begin Backup

mv /store/backup/* /store/backup/.temp/

tar -cpfz /store/backup/backup_$(date +%Y%m%d%-%H%M%S).tgz $INCLUDE_DIRS $EXCLUDE_DIRS

mysqldump -uroot -ppassword -all-databases > /store/backup/database_$(date +%Y%m%d%-%H%M%S).sql

rm /store/backup/.temp/*

# End Backup

你需要备份的东西,都可以统一备份到/store partition下的backup目录,甚至你可以将win系统上资料,也在linux下备份了,虽然vista本身就有足够强大且方便的备份机制,但在这里保留一份关键资料的备份,也不是坏事:-)。

如果你局域网或者internet上有一台运行这OpenSSHD服务的机器,可以使用rsync工具备份一份到服务器上,这个工具足够强大及方便,而且可以通过ssh使用public/private keys远程自动备份。注意,这也只是一份示例!

 

 

# Begin Rsync
RSYNC="/usr/bin/rsync"
SSH="/usr/bin/ssh"
KEY=$HOME/island/peter/rsync-key #private key
RUSER="REMOTE_USER" # remote user
RHOST="REMOTE_HOST" # remote host
RPATH="/home/REMOTE_USER/backup/" # remote path
LPATH="/store/backup/" # local path
$RSYNC -az -e "$SSH -i $KEY" $LPATH $RUSER@$RHOST:$RPATH \
--filter='- .temp' \
 --delete

这是我目前想到的备份方案,如果你参考一些网上人们分享的个人经验(google rsync,ssh,backup,linux),及参阅一些专家写的文章: Automate Backups On linux,你会有适合你自己的备份方案的。

 

但要知道,在网上获得一份备份脚本是很容易的,掌握各种命令的使用也很容易。但你要真正做好Linux System Administration,只有不断地学习,比如把这本Linux System Administration - O'Reilly看完(认真看-_-~!)。

by Peter Fu, Sat Nov 17

1 comment - Tags: linux, system, backup

执行控制脚本

Posted by Cofyc, on November 7, 2007, 3:11 pm

一直很烦恼,linux下的各种脚本的管理。放在一起,功能各种各样的,使用起来麻烦。即使使用svn统一管理,按功能划分了目录,你要执行某个脚本时,也要cd几下到执行的目录。脚本多了,你可能连名字都记不请或者把功能搞混了。

今天,琢磨了一下,写了一个run脚本,放到搜索路径中或硬链接到某一搜索目录下。而对于其他各种功能的脚本或程序,使用svn统一管理。run脚本功能就是根据命令行参数,执行对应的脚本或程序。比如这些:

run rsync neverland # 同步服务器上的neverland

run apache restart # 重启apache

等等,以第一个参数为脚本或功能对象,后面提供脚本的参数等等方法,可以用run把各种各样scripts或程序统一控制起来。新写了一个脚本或程序,只需添加到run脚本里就可以了。即使系统环境变了,也只用更新下run就可以了。

0 comment - Tags: linux

Except where otherwise noted, content on this site is licensed under a Creative Commons Attribution 3.0 License
Powered by Project Neverland, Theme modified from gluedideas