[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: 求教,Linux学习问题



zhan@games.com 写道:
On Tue, 03 Jun 2008 11:13:21 +0800, Ji ZhengYu <zhengyuji@gmail.com> wrote:

2008/6/3 shell909090 <shell909090@gmail.com>:
Ji ZhengYu 写道:

conwood/liangzi 写道:


2008/6/2 ze phyr <phyrster@gmail.com>:


得出的结论是:在桌面层面,Windows下我的工作效率要大于Linux。尤其 是现在的克隆版,装一个电脑方便的不得了。



其实用 tar 和 grub-install 并不比重装 windows 慢。



嗯,说道装 linux 的话,我有个很好的做法。即只装 base 系统,
然后用 apt-get update & dist-upgrade 升级,前后不过 30 分钟
就全部 OK 了。至于那些应用软件嘛,呵呵,我的做法是大部分
以 src 安装在 /usr/local 下,而我的 /usr/local 分在了一个独立
的分区中,再怎么重装都不会受影响 :-)
这是我以前学 linux 时从老外那里学来的技巧,呵呵。



倒是很实用,可惜不能自动更新。



常用软件不用怎么常更新的,比如 mplayer、pidgin 之类。
我用的也就那几个功能,它的新版本出新功能对我来说没用。
还有一些小工具软件,比如 shntool 用来分割 wav 的一个辅助
软件。这是为了满足一些依赖关系才删除源中自带的,而从
源码安装的,那以后只要它还是满足依赖关系就没有必要再装。

其它一些跟系统安全相关的小库和小程序就从源中安装。
总之,哪些从源安装,哪些以 src 安装,时间用长了就知道
自己的电脑要干些什么,就会自由选择了。


如果网络够快的话,直接列一个软件列表,重装之后一并安装就好了。
至于一些/etc下的配置文件,备份一下,重装之后用script覆盖掉好了。
前提是网络够快。


我是写了个简单的小脚本来备份当前配置。备份了dpkg列表,deborphan列表(其实 使用这个列表就可以完整的再安装当前系统,只是配置都丢了),系统文件列表, mysql数据库,指定文件(修改backup.lst可以修改范围,目前我备份了etc的配置 和密钥,还有dpkg的配置)。
在我的机器上,生成一个备份大概是1分多钟,主要是邮件太大了。
另外,更新也不一定是为了好用,很多是安全问题阿,例如刚刚更新的libssl。



/etc
/home/shell/.config
/home/shell/.indent.pro
/home/shell/.gnupg
/home/shell/.mozilla-thunderbird
/home/shell/.purple
/root/.gnupg
/root/backup
/root/soft.list
/root/*.install
/var/backups
/var/lib/apt/extended_states
/var/lib/aptitude/pkgstates
/var/lib/dpkg/alternatives
/var/lib/dpkg/available
/var/lib/dpkg/diversions
/var/lib/dpkg/status
#!/bin/bash

DEBIAN_BACKUP_NAME=debian_bak
DEBIAN_BACKUP_LIST=~/backup.lst
DEBIAN_TMP_NAME=backup.tmp

function backup_processer(){
rm -f $DEBIAN_TMP_NAME
cat $1|while read x
do
	find "$x" 2>/dev/null | sed "s/^\///g" >> $DEBIAN_TMP_NAME
done
cd /
cat $OLDPWD/$DEBIAN_TMP_NAME | cpio -H newc -o > $OLDPWD/$2 2>/dev/null
cd $OLDPWD
rm -f $DEBIAN_TMP_NAME
}

cd ~
echo -n "mkdir $DEBIAN_BACKUP_NAME ..."
test -d $DEBIAN_BACKUP_NAME/ || rm -Rf $DEBIAN_BACKUP_NAME/
mkdir -p $DEBIAN_BACKUP_NAME/ > /dev/null
cd $DEBIAN_BACKUP_NAME
echo "done"

echo -n "Update dpkg config ..."
dpkg --get-selections > debian_selection.list
deborphan -a | sort > debian_source.list
echo "done"

echo -n "Generic file list..."
find /home /usr/local /var > home.list 2>/dev/null
echo "done"

echo -n "Backup Mysql DataBase ..."
mysqldump -u root -pOOXX -A > my.sql 2>/dev/null
echo "done"

echo -n "Processing files in $DEBIAN_BACKUP_LIST ..."
backup_processer $DEBIAN_BACKUP_LIST backup_lst.cpio
echo "done"

cd ..
echo -n "Finishing ..."
test -e "$DEBIAN_BACKUP_NAME.gz" || rm -f "$DEBIAN_BACKUP_NAME.gz"
tar czf "$DEBIAN_BACKUP_NAME.tar.gz" "$DEBIAN_BACKUP_NAME"
if [ "$1" != "debug" ]; then
	rm -Rf $DEBIAN_BACKUP_NAME >/dev/null 2>&1
fi
echo "done"

Reply to: