The Mirages

樱桃沟夹事

王小波有篇文章叫《花刺子模信使问题》,里面讲了一个故事。说古代花刺子模国的国王有一个特别的习俗,凡是给君王带来好消息的信使,就会获得晋升; 凡是给君王带来坏消息的信使,就会被送去喂老虎。花刺子模国到底有没有这个习俗不重要,关键是这个君王天真的认为只要把带来坏消息的信使杀了就只会剩下好 消息了。 而我们的监管部门似乎跟这个君王没什么区别,他们也同样天真的认为,只要把反对的声音压制住了,那就天下太平了。这无论是从物理学还是心理学上都是说不通的,历史证明压制和专制只能换来更大的反抗。 今年中国发生的大事还是非常多的,国家领导人的改选,西藏事件,家乐福事件等等。 而我国对于网络的监控和封锁已经是无所不用其及。无论是技术上的如GFW,还是行政命令上的如家乐福。 关于家乐福我想很多人都已经反应了,在谷歌和百度上搜索已经无法得到结果了。 这里我们可以看看其他方面的监控。下面2个截图是刚刚对于sina和sohu上的2个截图 在图中的选择部分大家都看到了什么呢? 上面我们能看到明明有10W多的留言,但是实际显示却是1W多条,而留下的留言全都是正面的消息。 为什么会这样呢?我想sohu和sina也并不想这样的,因为这样做只会增加他们的工作量,这当然是背后中国电信命令的,中国电信的BOSS不想成为那个带来坏消息的信使,一旦那样的话他可是做不上那个位置了。

cronolog的进程在apache1.3下无法释放的问题给解决了 http://cronolog.org/mailing-list/msg00134.html Example: ErrorLog “|exec /usr/local/cronolog/sbin/cronolog /var/log/apache/hostname_error.%Y%m%d” 本来一直想这个是不是算是bug呢? 现在看来是给解决了,但是不是我解决的,是头给解决的。这个算是从根本上把问题给解决了。 而我本来还在写那个自动杀进程的脚本。把最早的cronolog进程列出来,然后每天杀一次,可这个总归不是解决问题的根本,现在算是从根本上把问题给解决了。 我心里就一直认为这个是bug,暂时是无法解决的,看来自己看待事物需要改变的东西还很多。

如何做到:

  1. 部署容易: 做好部署脚本,包含各种不同的应用的部署脚本

  2. 易维护:错误列表需要做好,各种安装文档作好。

  3. 更安全:做好安全协议和各种安全措施

运维体系面临的问题 系统部分

  1. 系统多样性: windows, linux, freebsd各种操作系统,而且很多时候运行于上面的程序也会各不相同。

  2. 应用多样性: web前端, master db, slave db, ha以及各种不同应用程序。

  3. 人员更替频繁: 操作流程要做好。

网络部分

  1. 应用复杂: 每个项目都需要不同的架设方式

  2. 各种协议问题

阅读全文 »

虽然我本人不用C2C,就是类似taobao这样的,但是我一直上B2C购买物品。 在china-pub, dangdang, joyo都是最高级别会员了,所以对这些网站也算比较了解了。所以就随便对比下。 以前看过amazon的评价,据说亚马逊的订单下去2个小时后就能把物品送到你家中,太厉害了,他们的物流是怎么做到这些的?而我们国内的能在第2天送上门我已经是非常满意了。网站做的好的就是一个售后系统和物流了。 china- pub是上的最早的,因为学计算机的缘故,china-pub以前是计算机图书最多的了,价格也是比较便宜的,一般有个73者,送货费比较贵,一般是需要 7元送货费,所以如果买100以内是绝对不合算的。但是送货还是比较快,从1天到4天都是有的,如果你的书在苏州书库里有的话那估计一到2天就可以到了,如果在北京的话就要4天了。 dangdang是上面随便什么都有,类似百货商店了,最早是在上面买过手表,是精工的表,但是走时还真是差阿,基本需要1个礼拜就要调一次。dangdang的送货费有时候会免费,有时候2元,有时候要5元,价格基本就是如此了。现在价格上跟china- pub比较多,但是评论没有china-pub多,而且枪手也比较多。不过似乎枪手都转到douban上去了。说个问题,现在dangdang的送货实在是慢的可以,基本都是需要1个星期左右,我就不知道这些快递公司外面的评论那么差,可dangdang还是委托他们。同时dangdang即使送货出来也不会通知你,不会告诉你快递公司的电话,除非你打他们的客服电话。客服电话的处理时间是2个工作日,我一个单子需要打2次电话,要是很着急的单子大家自己想想吧。 joyo,现在应该叫amazon中国了,自从被amazon收购后我来这个网站的时间就多了。joyo现在送货费都是免费的了,价格上也比较便宜,跟dangdang基本会产生比较,dangdang便宜它也跟着便宜。joyo的售后还是比较不错的。你单子下去后,首先他们会发 email给你,让你知道有这个事情。其次的话等单子发出后他也会发个email给你说明单子已经发出,同时会告诉你快递公司的名字和快递公司的电话给你。这些其实是很人性话的。china-pub以前也就是会发短消息给你说单子已经发送出来。joyo的东西也并没有dangdang多,但是 dangdang的店中店是比较麻烦的。

磁盘限额,也就是quote,它分为v1和v2两个版本,网上的教程一般都是针对v1的quote 由于要做nis和nfs,所以要对用户的主目录进行磁盘限额,这里的测试帐号为test 对用户主目录:/home限制,修改/etc/fstab文件,重新启动计算机 A.编辑/etc/fstab文件,重新启动计算机,使限额功能生效 ```c

vi /etc/fstab 把 LABEL=/home /home ext3 defaults 1 2 修改为: LABEL=/home /home ext3 defaults,usrquota,grpquota 1 2 touch quota.user touch quota.group chmod 666 quota.user chmod 666 quota.group reboot

```c
1
2
3
4
5
6
7
8
9
10
11

cd /home convertquota /home //这个就是v2的quote必须做的,它会把quota.userh和quota.group转换为aquota.user和aquota.group。如果没有这步下面会报错的。 quotacheck -avug quotaon -a
``` B.限额配置文件的修改 ```c

edquota test//为用户test设置磁盘配额
``` 系统会自动打开配额文件,如下: Disk quotas for user test (uid 1008): Filesystem blocks soft hard inodes soft hard /dev/sda4 1244 0 0 13 0 0 #注: #第一列是启用了配额的文件系统的名称。第二列显示了用户当前使用的块数,单位为KB。随后的两列用来设置用户在该文件系统上的软硬块限度。 inodes 列显示了用户当前使用的i节点数量。最后两列用来设置用户在该文件系统上的软硬i节点限度.硬限是用户或组群可以使用的磁盘空间的绝对最大值。达到了该限度后,磁盘空间就不能再被用户或组群使用了。软限定义可被使用的最大磁盘空间量。和硬限不同的是,软限可以在一段时期内被超过。这段时期被称为过渡期(grace period),默认七天的超越。过渡期可以用秒钟、分钟、小时、天数、周数、或月数表示。如果以上值中的任何一个被设置为 0,那个限度就不会被设置。 C.要校验用户的配额是否被设置,我们可以使用以下命令: ```c

quota test
``` 用以下命令显示磁盘配额使用状态: ```c

repquota -a

01年的老文了,但是还是很经典,转载来 创建时间:2001-07-05 文章属性:原创 文章来源:http://xfocus.org/ 文章提交:inburst (inburst_at_263.net) 用rsync对网站进行镜像备份 by inburst http://xfocus.org 对系统管理员来说,平时的工作重心应该集中在维护系统正常运转,能够正常提供服务上,这里往往牵涉到一个数据备份的问题,在我所了解的情况中,有80%的系统管理员不是太关心自己服务器的安全性,但往往对备分镜像的技术相当感兴趣,但由于商业产品的软硬件价格都相当高昂,因此往往会选择自由软件。这里准备介绍的rsync就是这样的软件,它可以满足绝大多数要求不是特别高的备份需求。 一、特性简介 rsync是类unix系统下的数据镜像备份工具,从软件的命名上就可以看出来了——remote sync。它的特性如下: 1、可以镜像保存整个目录树和文件系统。 2、可以很容易做到保持原来文件的权限、时间、软硬链接等等。 3、无须特殊权限即可安装。 4、优化的流程,文件传输效率高。 5、可以使用rcp、ssh等方式来传输文件,当然也可以通过直接的socket连接。 6、支持匿名传输。 二、使用方法 rsync的使用方法很简单,我就举自己使用的例子来说明吧。 1、系统环境 rsync支持大多数的类unix系统,无论是Linux、Solaris还是BSD上都经过了良好的测试。我的系统环境为: server: FreeBSD 4.3 ip: 192.168.168.52 client: Solaris 8 ip: 192.168.168.137 rsync 版本 2.4.6(可以从http://rsync.samba.org/rsync/获得最新版本) 2、配置server端的/etc/rsyncd.conf文件 bash-2.03# cat /etc/rsyncd.conf uid = nobody gid = nobody use chroot = no # 不使用chroot max connections = 4 # 最大连接数为4 pid file = /var/run/rsyncd.pid lock file = /var/run/rsync.lock log file = /var/log/rsyncd.log # 日志记录文件 [inburst] # 这里是认证的模块名,在client端需要指定 path = /home/inburst/python/ # 需要做镜像的目录 comment = BACKUP CLIENT IS SOLARIS 8 E250 ignore errors # 可以忽略一些无关的IO错误 read only = yes # 只读 list = no # 不允许列文件 auth users = inburst # 认证的用户名,如果没有这行,则表明是匿名 secrets file = /etc/inburst.pas # 认证文件名 [web] path = /usr/local/apache/htdocs/ comment = inburst.org web server 3、在server端生成一个密码文件/etc/inburst.pas bash-2.03# cat /etc/inburst.pas inburst:hack 出于安全目的,文件的属性必需是只有属主可读。 4、在server端将rsync以守护进程形式启动 bash-2.03# rsync –daemon 如果要在启动时把服务起来,有几种不同的方法,比如: a、加入inetd.conf 编辑/etc/services,加入rsync 873/tcp,指定rsync的服务端口是873 编加/etc/inetd.conf,加入rsync stream tcp nowait root /bin/rsync rsync –daemon b、加入rc.local 在各种操作系统中,rc文件存放位置不尽相同,可以修改使系统启动时rsync –daemon加载进去。 5、从client端进行测试 下面这个命令行中-vzrtopg里的v是verbose,z是压缩,r是recursive,topg都是保持文件原有属性如属主、时间的参数。–progress是指显示 出详细的进度情况,–delete是指如果服务器端删除了这一文件,那么客户端也相应把文件删除,保持真正的一致。后面的inburst@ip中, inburst是指定密码文件中的用户名,之后的::inburst这一inburst是模块名,也就是在/etc/rsyncd.conf中自定义的名称。最后的/tmp是备份 到本地的目录名。 在这里面,还可以用-e ssh的参数建立起加密的连接。可以用–password-file=/password/path/file来指定密码文件,这样就可以在脚本中使 用而无需交互式地输入验证密码了,这里需要注意的是这份密码文件权限属性要设得只有属主可读。 bash-2.03# rsync -vzrtopg –progress –delete inburst@192.168.168.52::inburst /tmp/ Password: receiving file list … done ./ 1 785 (100%) 1.py 4086 (100%) 2.py 10680 (100%) a 0 (100%) ip 3956 (100%) ./ wrote 190 bytes read 5499 bytes 758.53 bytes/sec total size is 19507 speedup is 3.43 6、创建更新脚本 如果有比较复杂的工作,利用一些常见的脚本语言可以有帮助。比如: bash-2.03# cat /usr/local/bin/rsync.sh #!/bin/sh DATE=`date +%w` rsync -vzrtopg –progress –delete inburst@192.168.168.52::inburst /home/quack/backup/$DATE –password-file=/etc/rsync.pass > /var/log/rsync.$DATE 7、修改/etc/crontab做好定时 比如: bash-2.03# echo “15 4 * * 6 root rsync.sh”>>/etc/crontab 三、FAQ Q:如何通过ssh进行rsync,而且无须输入密码? A:可以通过以下几个步骤 1. 通过ssh-keygen在server A上建立SSH keys,不要指定密码,你会在/.ssh下看到identity和identity.pub文件 2. 在server B上的home目录建立子目录.ssh 3. 将A的identity.pub拷贝到server B上 4. 将identity.pub加到[user b]/.ssh/authorized_keys 5. 于是server A上的A用户,可通过下面命令以用户B ssh到server B上了 e.g. ssh -l userB serverB 这样就使server A上的用户A就可以ssh以用户B的身份无需密码登陆到server B上了。 Q:如何通过在不危害安全的情况下通过防火墙使用rsync? A:解答如下: 这通常有两种情况,一种是服务器在防火墙内,一种是服务器在防火墙外。 无论哪种情况,通常还是使用ssh,这时最好新建一个备份用户,并且配置sshd仅允许这个用户通过RSA认证方式进入。 如果服务器在防火墙内,则最好限定客户端的IP地址,拒绝其它所有连接。 如果客户机在防火墙内,则可以简单允许防火墙打开TCP端口22的ssh外发连接就ok了。 Q:我能将更改过或者删除的文件也备份上来吗? A:当然可以: 你可以使用如:rsync -other -options -backupdir = ./backup-2000-2-13 …这样的命令来实现。 这样如果源文件:/path/to/some/file.c改变了,那么旧的文件就会被移到./backup-2000-2-13/path/to/some/file.c,这里这个目录需要自己 手工建立起来 Q:我需要在防火墙上开放哪些端口以适应rsync? A:视情况而定 rsync可以直接通过873端口的tcp连接传文件,也可以通过22端口的ssh来进行文件传递,但你也可以通过下列命令改变它的端口: rsync –port 8730 otherhost:: 或者 rsync -e ‘ssh -p 2002’ otherhost: Q:我如何通过rsync只复制目录结构,忽略掉文件呢? A:rsync -av –include ‘/‘ –exclude ‘‘ source-dir dest-dir Q:为什么我总会出现”Read-only file system”的错误呢? A:看看是否忘了设”read only = no”了 Q:为什么我会出现‘@ERROR: invalid gid’的错误呢? A:rsync使用时默认是用uid=nobody;gid=nobody来运行的,如果你的系统不存在nobody组的话,就会出现这样的错误,可以试试gid = nogroup或者其它 Q:绑定端口873失败是怎么回事? A:如果你不是以root权限运行这一守护进程的话,因为1024端口以下是特权端口,会出现这样的错误。你可以用–port参数来改变。 Q:为什么我认证失败? A:从你的命令行看来: 你用的是: > bash$ rsync -a 144.16.251.213::test test > Password: > @ERROR: auth failed on module test > > I dont understand this. Can somebody explain as to how to acomplish this. > All suggestions are welcome. 应该是没有以你的用户名登陆导致的问题,试试rsync -a max@144.16.251.213::test test 四、一些可借鉴的脚本 这里这些脚本都是rsync网站上的例子: 1、每隔七天将数据往中心服务器做增量备份 #!/bin/sh # This script does personal backups to a rsync backup server. You will end up # with a 7 day rotating incremental backup. The incrementals will go # into subdirectories named after the day of the week, and the current # full backup goes into a directory called “current” # tridge@linuxcare.com # directory to backup BDIR=/home/$USER # excludes file - this contains a wildcard pattern per line of files to exclude EXCLUDES=$HOME/cron/excludes # the name of the backup machine BSERVER=owl # your password on the backup server export RSYNC_PASSWORD=XXXXXX ######################################################################## BACKUPDIR=`date +%A` OPTS=”–force –ignore-errors –delete-excluded –exclude-from=$EXCLUDES –delete –backup –backup-dir=/$BACKUPDIR -a” export PATH=$PATH:/bin:/usr/bin:/usr/local/bin # the following line clears the last weeks incremental directory [ -d $HOME/emptydir ] || mkdir $HOME/emptydir rsync –delete -a $HOME/emptydir/ $BSERVER::$USER/$BACKUPDIR/ rmdir $HOME/emptydir # now the actual transfer rsync $OPTS $BDIR $BSERVER::$USER/current 2、备份至一个空闲的硬盘 #!/bin/sh export PATH=/usr/local/bin:/usr/bin:/bin LIST=”rootfs usr data data2” for d in $LIST; do mount /backup/$d rsync -ax –exclude fstab –delete /$d/ /backup/$d/ umount /backup/$d done DAY=`date “+%A”` rsync -a –delete /usr/local/apache /data2/backups/$DAY rsync -a –delete /data/solid /data2/backups/$DAY 3、对vger.rutgers.edu的cvs树进行镜像 #!/bin/bash cd /var/www/cvs/vger/ PATH=/usr/local/bin:/usr/freeware/bin:/usr/bin:/bin RUN=`lps x | grep rsync | grep -v grep | wc -l` if [ “$RUN” -gt 0 ]; then echo already running exit 1 fi rsync -az vger.rutgers.edu::cvs/CVSROOT/ChangeLog $HOME/ChangeLog sum1=`sum $HOME/ChangeLog` sum2=`sum /var/www/cvs/vger/CVSROOT/ChangeLog` if [ “$sum1” = “$sum2” ]; then echo nothing to do exit 0 fi rsync -az –delete –force vger.rutgers.edu::cvs/ /var/www/cvs/vger/ exit 0 4、利用find的一种巧妙方式 rsync -avR remote:’`find /home -name “*.[ch]“`‘ /tmp/ 可以用这种方法列出需要备份的文件列表——这种方法似乎比较少人用到。 五、参考资料: 1、http://rsync.samba.org/ 2、rsync examples 3、rsync FAQ

作为一个系统管理员,对于操作系统底层的熟悉是我们相对于软件工程师优势所在,所以一些基础的东西我 可是还要好好加深哦,而系统管理员不光是要学会对系统软件的配置和优化,这些东西所有人经过一段时间的是都能会的,有些时候我们必须自己写些程序实现点小 功能,这些就是跟人家的区别和优势了,当然我自己还有我自己的方向的。

转自:http://www.cnscn.org(CNS电脑与英语学习网)

  1. BIOS自检
  2. 启动Grub/Lilo
  3. 加载内核
  4. 执行init进程
  5. 通过/etc/inittab文件进行初始化
  6. 登陆Linux

1)BIOS自检
a)POST(Power On Self Test),对硬件进行检测
计算机在通电后首先由BIOS进行自检,即所谓的POST(Power On Self Test),对硬件进行检测
依据BIOS内设置的引导顺序从硬盘、软盘或CDROM中读入”引导块”
在PC中,Linux是从BIOS中的地址0xFFFF0处开始的
BIOS的第一个步骤是加电自检(POST),对硬件进行检测
第二个步骤是进行本地设备的枚举和初始化
BIOS由两部分组成: POST代码和运行时服务
当POST完成后,它从内存中清理出来,但BIOS运行时服务依然保留在内存中,目标操作系统可以使用这些服务
要引导一个操作系统,BIOS运行时会按照CMOS的设置的顺序来搜索处于活动状态并可引导的设备:软盘、CD-ROM、硬盘上的分区、网络上的某个设备、USB(通常Linux是从硬盘引导的
主引导记录MBR中包含主引导加载程序。MBR是一个512字节大小的扇区,位于磁盘上的第一个扇区中(0道0柱面1扇区))当MBR被加载到RAM中之后,BIOS会把控制权交给MBR

b)提取MBR的信息
要看MBR的内容,请使用下面的命令
从/dev/sda上读取前512个字节的内容,并将其写入mbr.bin文件中

1
[root@localhost pam.d]# dd if=/dev/sda of=mbr.bin bs=512 count=1
阅读全文 »

画网络图,机柜图,系统结构图,加上以前就一直画的UML和E-R图以及EXCEL图表,我居然成为一个专职的绘画员了,或许以后还可以转行从事绘画呢? 以前用VISIO和Rational Rose以及Project,现在既然在UBUNTU下了,那就用了dia。 dia这个软件还是挺好用的,可dia画的图示居然是链接到本地硬盘文件的,而不是内嵌到dia格式中,如果本地不存在这个文件,那所画的图就无法显示了,而visio中就算是外来图片也会内嵌到文件中。 无奈现在只能保存为PNG,有明白这个问题的朋友希望能给我指条明路。不然保存为PNG对于后来要修改就麻烦了。

NFS在ubuntu7.10下安装 server端: 首先是安装服务器相关软件 ```c

sudo apt-get install nfs-kernel-server vi /etc/exports 添加: /home 172.16.30.211(rw,subtree_check)

man exports172.16.30.211为客户端IP,也可以写成 172.16.30.0/24 这样的网段形式 执行 ```c
1
2
3
4
5
6
7
8

exportfs -rv
``` 用来重新进行同步共享,并显示出来 最后重启下nfs服务器程序就可以了 ```c

sudo /etc/init.d/nfs-kernel-server start
``` client端 在7.10中client端需要安装nfs-common ```c

sudo apt-get install nfs-common 映射服务器端的/home目录 sudo mount -t nfs 172.16.30.189:/home /home

作者:timo 本文参考:

  1. http://www.freebsd.org/doc/zh_CN.GB2312/books/handbook/network-nis.html
  2. http://www.freebsdchina.org/forum/viewtopic.php?t=2778&highlight=ypinit
  3. http://linux-vbird.hillwood.cn/linux_server/0430nis.htm
    44 https://help.ubuntu.com/community/SettingUpNISHowTo

文中粗体为文件中添加的内容,斜体为命令。

服务器端用的是ubuntu7.10server IP地址为:172.16.30.189
客户端使用的是ubuntu7.10desktop IP为172.16.30.203

首先是要在server端/etc/hosts里增加IP映射如:

1
2
3
4
5
 172.16.30.203 zauc-laptop 
``` 接着在/etc/hosts.allow中添加portmap
```bash
portmap ypserv ypbind : 172.16.30.189
portmap ypserv ypbind : 172.16.30.203
阅读全文 »
0%