Archive for 'linux'

前几天写了一个运维工具,用来监控夜间业务的处理情况。

虽然是生产网,但由于都是内部网络,所以决定谨慎采用snmp来获取一些信息。其中的一个需求是,根据某个指定的业务日期从远程服务器的日志中分析产生结果,然后将结果在本地监控机上呈现。

这个需求的实现有很多种方法,我这边利用 net-snmp 的扩展命令 pass 调用 shell 脚本来实现。通过 man snmpd.conf(5) 可知,net-snmp支持自定义的脚本以获取需要的信息,那就是扩展命令exec、extend 和 pass(三者的区别详见此 FAQ)。 › Continue reading…

Tags: , ,

GRUB2是下一代的多系统引导器,grub即将退位,项目名也改成了grub-legacy。相比grub(目前的版本是0.97)而言,grub2重写了代码以实现模块化和可移植性。

有趣的Grub Logo:

将archlinux的grub升级到grub2是一件很简单的事情,你只需要通过pacman安装新的grub2软件包,转换menu.lst为grub.cfg就可以了。这篇日志的大部分资料来自Archlinux的wiki,命令操作记录来自我的笔电。

首先来搜索一下仓库里的grub2软件包:

~>; pacman -Ss grub2
extra/grub2-bios 1.99~rc2.r3238-1
The GNU GRand Unified Bootloader version 2 – Built for PC BIOS
extra/grub2-common 1.99~rc2.r3238-1
The GNU GRand Unified Bootloader version 2 – Files common for all platforms
extra/grub2-efi-i386 1.99~rc2.r3238-1
The GNU GRand Unified Bootloader version 2 – i386 UEFI version
extra/grub2-efi-x86_64 1.99~rc2.r3238-1
The GNU GRand Unified Bootloader version 2 – x86_64 UEFI version

你会发现目前仓库里有4个grub2的软件包,做个简单的介绍吧:

grub2-bios            –> 适用于PC BIOS

grub2-commin    –> 文件集合(包含了所有平台相关的文件)

grub2-efi-i386      –> 适用于32位平台的UEFI

grub2-efi-x86_64 –> 适用于64位平台的UEFI

一般情况下,我们选择安装grub2-bios。什么是UEFI呢?这货全称Unified Extensible Firmware Interface,直译叫做“统一的可扩展固件接口”,这种接口用于操作系统自动从预启动的操作环境,加载到某种操作系统上,从而使开机程序化繁为简,节省时间。UEFI将替代已存在多年的BIOS,目前市场上的主板已经开始采用UEFI 。

› Continue reading…

Tags: , , , ,

在Archlinux上使用华为E1780 3G上网

出差在外,所以买了一张联通的186 3G卡来无线上网,上网设备选择了华为的E1780,因为我觉得外观很好看…

在linux上3G上网基本上是如下的两步配置流程:

1、使用usb_modeswitch将上网设备的模式转换为modem

2、使用wvdial自动生成配置文件并拨号

关于3G的配置步骤这里不再赘述,google会告诉你很多结果。

› Continue reading…

Tags: , , , ,

在ESXi 3.5中安装 sco openserver 5.0.7

注:本日志提到的安装方法来源于互联网,经本人实际测试后整理呈现,对原作者的共享表示感谢

想要在现在的服务器上安装sco unix 5系列有时候真的会让你无奈,主要问题在于各种硬件的不支持(有好硬件,却没有驱动支持,这是最悲催的),比如阵列卡、主板、网卡等等。

通常,我们可能会这么解决这个尴尬的问题:

  1. 将部分硬件更换为SCO支持的老硬件
  2. 找一台旧服务器或者是PC机

不过,随着虚拟化技术的快速发展,我们已经有了新的选择:用虚拟机安装sco unix 5

› Continue reading…

Tags: , , ,

磁带机的磁带操作

这两天发现,对于同样大小的文件,磁带机越往后面用,写入时间就越长。

之前介绍了用tar对磁带机进行数据操作,今天把磁带机的磁带操作简单整理下。

所谓的磁带操作,就是如何进行倒带,擦除磁带,弹出磁带等,来看具体的操作命令:

倒带,将磁带卷至起始位置:

# mt -f /dev/st0 rewind

擦除,擦掉磁带上的内容:

# mt -f /dev/st0 erase

这里要注意,磁带的擦除是很慢的,而且会对磁带造成损伤,所以一般情况下我们可不会去做这吃力不讨好的事情。
如果你擦除磁带是为了从头开始使用,那可以先倒带到磁带的起始位置,然后tar cvf /dev/st0 file_name来重新写入数据。
当磁带
此外,新的磁带拆封后可以直接放入磁带机使用,不用执行擦除。
出带,将磁带卷至初始位置然后从磁带机内弹出:

# mt –f /dev/st0 offline

Tags: ,

Linux命令行查字典

这两天想找个CLI命令行的字典小工具,搜到了LinuxTOY的这篇:http://linuxtoy.org/archives/gdict.html

文中提到的gdict.sh是使用curl从google dictionary中查询单词解释,然后sed截取出中文解释。但现在google dictionary已改用袖珍牛津英语词典(见这里),只能查英语-英语了,并且查询结果由于html2text的原因还带有一些特殊字符,影响使用。

看到文章中各位Linuxer的回贴,我简单改写了一个查字典shell,查询的信息来自百度词典。由于我对sed不熟,所以写的比较笨拙,好在还能用用。代码如下:

#!/bin/bash
ARGS=1
E_BADARGS=65
 
if [ $# -ne "$ARGS" ]
then
    echo "Usage:`basename $0` word"
    exit $E_BADARGS
fi
 
w3m -no-cookie -dump 'http://dict.baidu.com/s?wd='$1'&f=3'  \
| sed '/以下结果来自互联网网络释义/,$d'| sed '1,15d' | tac \
| sed '1,2d' | tac |sed -r '/^[0-9]+\./N;s/\n//' > /tmp/rxdict.tmp
 
echo
echo -e "--------------------\033[1;40;33m $1 \033[0m--------------------"
cat /tmp/rxdict.tmp

exit 0

效果预览:

Tags: , , ,

这是资料整理帖,所有内容来自互联网不同站点的没良心转载(出处无法确定…),对原作者表示感谢。

我现在可以玩弄一款 IBM 8767-HNX的外置磁带机,在RHEL 4中被认成/dev/st0 (还有一个/dev/nst0),来看一下dmesg输出

# dmesg

…………

Attached scsi tape st0 at scsi1, channel 0, id 0, lun 0

st0: try direct i/o: yes (alignment 512 B), max page reachable by HBA 4503599627370495

Attached scsi generic sg0 at scsi0, channel 0, id 1, lun 0,  type 0

Attached scsi generic sg1 at scsi0, channel 0, id 4, lun 0,  type 13

Attached scsi generic sg2 at scsi1, channel 0, id 0, lun 0,  type 1

Attached scsi generic sg3 at scsi4, channel 0, id 0, lun 0,  type 0

Attached scsi generic sg4 at scsi4, channel 0, id 0, lun 1,  type 0

Attached scsi generic sg5 at scsi4, channel 0, id 0, lun 31,  type 0

st0: Block limits 1 – 16777215 bytes.

…………

› Continue reading…

Tags: , ,

闲来蛋疼,简单罗列如下5种快速清空文件内容的方法:

$ : > filename           #其中的 : 是一个占位符, 不产生任何输出.

$ > filename

$ echo “” > filename

$ echo /dev/null > filename

$ echo > filename

怎么习惯就怎么用,以上命令均在bash 3.2版本上通过测试。

如果你想深入学习shell脚本的知识,可以猛点击这里: http://tldp.org/LDP/abs/html/

ABS的中文版在这里:http://www.tsnc.edu.cn/default/tsnc_wgrj/doc/abs-3.9.1_cn/html/index.html

Tags: ,

今天在办公电脑上安装了archlinux。

这篇日志只是记录如何做,对于字体配置的细节不做详解, :D

刚刚安装好archlinux后,也许你会发现中文字体的表现非常糟糕。别担心,你只需要按照下面的方法进行简单的配置,就能获得基本满足需求的字体效果。

1. 安装各种各样的中英文字体

==以下字体通过pacman即可安装==

font-bh-ttf
ttf-arphic-ukai
ttf-arphic-uming
ttf-bitstream-vera
ttf-cheapskate
ttf-dejavu
ttf-fireflysung
ttf-ms-fonts
wqy-bitmapfont
wqy-zenhei

==以下字体在aur,yaourt可安装==

wqy-microhei 0.2.0_beta-2

2. 安装打了补丁的cairo, libxft, freetype2, fontconfig,液晶显示效果更平滑

下面的软件包都在aur中,用yaourt安装吧,需要删除原来的 cairo, libxft, freetype2, fontconfig。

cairo-ubuntu
libxft-ubuntu
freetype2-ubuntu
fontconfig-ubuntu

3.安装通用字体配置文件

linuxsir–arxhlinux版的 jarryson 为我们制作了通用的字体配置文件,效果非常好。

详见:http://www.linuxsir.org/bbs/thread339541.html

可以在这里下载fontsconf打包文件: http://www.box.net/shared/9thg3i3c33

更新打包文件:  fontconfig-7.tar.gz http://www.box.net/shared/bflybsxjf6

下载上述帖子中的fontsconf压缩包,解压后进入目录执行 makepkg -si 即可完成安装,然后根据自己的需求把相应的字体配置文件做好软连接。

效果图一枚:

Tags: , ,

一直想把分区管理方式转为lvm,趁着工作比较空闲搞定了,期间遇到了不少问题,以此记录。

我之前的分区如下:

sda1 –> /
sda5 –> /swap
sda6 –> /tmp (无厘头的tmp分区)
sda7 –> /home

目标分区形式如下:

sda1 –> /boot (除非是用grub2,不然grub是没法安装在lvm的逻辑卷上的)
sda2 –> archVG — lvroot (除boot分区外,剩余空间全部做成一个pv,然后划出swap和/分区)
|– lvswap

开始动工:

1、备份现有的archlinux数据

1)、备份/分区

a.先是用archlinux的img镜像做了一个U盘启动盘,进入之后将sda1 挂载到/mnt下面,插上移动硬盘,然后开始tar:

tar pmjcf root.tar.bz2 /mnt

b.经过漫长的等待,打包结束。home分区的数据依法打包:

tar pmjcf home.tar.bz2 /mnt

c.数据已经打包并备份到移动硬盘,接下来就是重新分区了,cfdisk、fdisk之类的工具任你挑,分好两个区:sda1(100M)和sda2(剩余所有空间,其实我还留了30G,以后可以装gentoo之类的os)
d.进行lvm操作,创建pv、vg、lv。( 可以参考这里:http://wiki.archlinux.org/index.php/LVM_(简体中文) )

# modprobe dm-mod (加载lvm所需模块)
# pvcreate /dev/sda2 (创建物理卷组)
# vgcreate archVG /dev/sda2 (archVG只是卷组的名称,可随意)
# lvcreate -L XXXG archVG -n lvlroot (在archVG卷组上创建/分区的逻辑卷lvroot )
# lvcreate -C y -L 4G archVG -n lvswap (创建交换分区的逻辑卷lvswap )

注意:如果你在这期间重启了电脑,那么进入启动盘后,卷组是未激活的,需要”vgchange -a y”激活之后,才能看到之前创建的逻辑卷。
e.格式化分区。

# mkfs.ext4 /dev/sda1
# mkfs.ext4 /dev/mapper/archVG-lvroot

f.恢复之前备份的数据。
将lvroot挂载到mnt,把root.tar.bz2拷贝到/mnt目录下面,然后解压:

# mount -t ext4 /dev/mapper/archVG-lvroot /mnt
# cp root.tar.bz2 /xxx /mnt
# cd /mnt; tar pmxf root.tar.bz2

将boot目录下的东东全部mv到/dev/sda1下。(这里就略了,mount到另外一个地方再mv过去即可)
g.重编译内核(为了添加lvm支持)与重装grub。(参考这里:http://wiki.archlinux.org/index.php/重装GRUB )

# cd /
# mount -t ext4   /dev/mapper/archVG-lvroot /mnt
# mount -t ext4   /dev/sda1   /mnt/boot
# mount -t proc   proc        /mnt/proc
# mount -t sysfs  sys         /mnt/sys
# mount -o bind   /dev        /mnt/dev
# chroot /mnt /bin/bash

# vim /etc/rc.conf ( 修改USELVM=”no”为USELVM=”yes” )
# vim /etc/mkinitcpio.conf ( 在HOOKS的filesystems前面加入lvm2 )
# pacman -U /var/cache/pacman/pkg/kernel26-2.6.xx.x-xxx.pkg.tar.gz

(这里图方便,安装的时候会根据mkinitcpio.conf的设置编译加入lvm2模块)

然后根据目前的分区情况编辑/etc/fstab和/boot/grub/menu.lst。(略)
重装grub。

# grub-install /dev/sda

至此,整个过程就结束了,reboot系统吧。在进入系统之前,还需要fsck一下分区,再次reboot就能顺利进入系统了。

Tags: , ,
« Previous posts Back to top