Linux Tech
文章平均质量分 69
jcwKyl
吾尝终日而思矣,不如须臾之所学也。
展开
-
sed学习总结及实例
sed是简单小巧但功能非常强大的工具。在上一篇博客中自己注解了sed的info文档中那些比较复杂的脚本示例,最近工作中使用到sed,复习了一下,再做一篇总结放在这里:sed有两块缓冲区:pattern space和hold space。pattern space中存放待处理的目标文本,hold space供程序员自己使用。sed处理流程:清空pattern space。(如果这是对原创 2012-02-20 08:50:39 · 7242 阅读 · 1 评论 -
使用lvm进行分区管理
<br />在我看来使用lvm的好处有两个:可以很方便地动态expand/shrink分区大小;不受分区个数的限制。<br />在howtoforge网站有非常好的lvm使用的介绍:http://www.howtoforge.com/linux_lvm<br />这里记录自己的操作过程:<br /><br />1.使用pvcreate创建physical volumn<br />[root@jcwkyl ~]# fdisk -l<br /><br />Disk /dev/sda: 320.0原创 2010-07-19 09:17:00 · 1434 阅读 · 0 评论 -
mount一个lvm格式的磁盘映像文件
<br />如果是非lvm格式的,则非常方便,给mount命令传递offset参数即可,例如:<br />[root@jcwkyl xen-images]# fdisk -lu centos_vm1<br />last_lba(): I don't know how to handle files with mode 81ed<br />You must set cylinders.<br />You can do this from the extra functions menu.<br /原创 2010-07-18 21:44:00 · 5565 阅读 · 0 评论 -
linux系统增加swap分区大小
准备物理分区。工具有:fdisk,partd等。要注意的是,如果如果要单独对硬盘上的某一个分区操作,比如要格式化/dev/sda4这块分区,则整块/dev/sda都不能使用,如果恰好root文件系统就在/dev/sda上,只有用光盘启动linux到rescue模式再进行相应的格式化或者别的操作。创建swap filesystem,例如:[root@jcwkyl vm]# mkswap /dev/xen_space/swap激活swap 分区,例如:[root@jcwkyl vm]# swap原创 2010-07-18 21:42:00 · 1223 阅读 · 0 评论 -
sparse image file的创建和使用
<br />sparse file的文件以sparse方式存储,其优点是延迟分配磁盘空间,原理可类比于可执行文件中的.bss段。<br />sparse file尤其适合作为虚拟机的磁盘映像文件。它仅保留一些创建时用户指定的文件大小信息以及其他的metadata,使用allocation on demand的方式,用多少分配多少,既快又方便。<br />创建sparse image file主要依靠dd命令的seek参数,比如要创建一个5G的虚拟磁盘映像:<br />[root@jcwkyl myv原创 2010-07-19 09:53:00 · 6353 阅读 · 0 评论 -
基于raw smtp用php实现简易的smtp客户端
任务需求:一个会议投稿系统,在作者提交论文摘要时自动向作者发送一封确认邮件。(注:投稿系统使用的是myreview)仔细考虑一下,这个任务可以有以下几种方式完成:在服务器上配置sendmail服务,使用php中的的mail函数发送邮件;在服务器上安装mutt + msmtp,或者在服务器上安装其它的smtp客户端程序,使用smtp客户程序发送邮件写一个C/S程序,每当有原创 2010-01-15 17:41:00 · 2505 阅读 · 0 评论 -
ftp脚本自动登录
在windows下非常简单,windows下的ftp客户端有一个-s参数可以带一个文件,把所有在ftp命令行下要输入的内容照原样输入到这个文件中,用ftp -s去执行就可以。例如:open 10.60.56.90whb123456get testclosebye把这个文件保存为autologin.txt。E:/>ftp -s:autologin.txtftp>原创 2010-01-08 10:41:00 · 11557 阅读 · 2 评论 -
查看安装的glibc版本
来自:http://www.linuxquestions.org/questions/linux-software-2/how-to-check-glibc-version-263103/方法一:找到libc的DSO(dynamic shared object)并运行它,如下所示:[whb@jcwkyl ~]$ locate libc.so/lib/libc.so.6原创 2010-01-07 20:58:00 · 11596 阅读 · 0 评论 -
Unix下的硬连接和软连接文件
发现创建的符号链接删除不了,搜索才知道删除符号连接时文件名后面不能后缀一个/。比如:[whb@jcwkyl test]$ ln -s ~whb[whb@jcwkyl test]$ lswhb[whb@jcwkyl test]$ rm whb/rm: cannot remove `whb/: Not a directory[whb@jcwkyl test原创 2010-01-06 16:53:00 · 3240 阅读 · 0 评论 -
VirtualBox虚拟磁盘转换成xen可用的格式
针对这个问题,用“convert virtualbox to xen"搜索,找到两篇文章:http://www.ioncannon.net/system-administration/80/how-to-transfer-linux-from-virtualbox-to-xen/方法:VBoxManage internalcommands converttoraw myosimage.原创 2009-12-27 21:33:00 · 2411 阅读 · 0 评论 -
从flv文件中提取音频并存储为mp3格式
在优酷上下载了一些教学视频,为了把它们放到mp3里面,需要从这些flv文件中提取出音频数据并存储为mp3格式。操作系统是centos 5.3。在网上搜索了一下,找到以下方法:方法一:使用mencoder,例如:mencoder -of avi -nosound -ovc copy in.flv -o out_just_vid.avi方法二:使用mplayer,例如:mpla原创 2010-02-20 18:55:00 · 14306 阅读 · 1 评论 -
linux虚拟机上网端口映射的多种方法
host主机系统:centos 5.3,使用升级过的2.6.23内核,安装VirtualBox 3.0.8。host主机IP是10.60.56.90,访问外网的网络出口为eth0。虚拟机为vm1,ip地址192.168.56.101,网络接口为vboxnet0,使用hostonly方式。在第三台电脑10.60.56.220上进行测试连接。两个任务:一:使虚拟机的192.168.56.0/2原创 2009-12-09 13:42:00 · 5362 阅读 · 0 评论 -
网格环境配置(一):准备工作
<!-- @page { size: 8.5in 11in; margin: 0.79in } P { margin-bottom: 0.08in }-->为了测试VJM,从头开始搭建一套完整的网格计算环境:SGE+ NFS +NIS + GT4 +CSF + VJM。准备虚拟机使用原创 2009-12-02 21:36:00 · 2093 阅读 · 0 评论 -
网格环境配置(三):安装SGE
安装SGE开始安装SGE。vm1作为sge的master主机。用户账号和系统服务这些信息都通过NIS服务器来统一管理。master主机和执行机通过NFS服务共享$SGE_ROOT。sge_qmaster服务的端口号为6444/tcp,sge_execd的端口号为6445/tcp。没有shadow原创 2009-12-02 22:23:00 · 8320 阅读 · 6 评论 -
sudoers文件设置简记
<br />sudoers文件控制哪些用户可以执行哪些操作,root用户可使用visudo命令编辑/etc/sudoers文件。<br />sudoers文件的语法非常简单,总的来说,它定义了一系列映射关系:<br /><user> <host> ---------- <operator> : <command><br />设置sudoers文件实质上就是操作这样的映射关系,这个映射关系表示允许user在host上以operator的身份执行command指定的命令,operator默认是原创 2010-07-23 11:07:00 · 1494 阅读 · 0 评论 -
xen3.0启动虚拟机fsimage.so的问题及解决
<br />[root@jcwkyl myvms]# xm create sge-master <br />Using config file "./sge-master".<br />Traceback (most recent call last):<br /> File "/usr/bin/pygrub", line 26, in ?<br /> import fsimage<br />ImportError:/usr/lib/python/fsimage.so: sy原创 2010-08-11 08:26:00 · 1502 阅读 · 0 评论 -
error: cannot restore segment prot after reloc
<br />在centos上有时候会遇到类似这样的错误:<br />[root@jcwkyl ~]# openssl<br />openssl:error while loading shared libraries:/opt/gt4/lib/libcrypto_gcc32.so.0: cannot restore segment prot afterreloc: Permission denied<br />这很可能是因为selinux设置成了enforce,把它禁用掉试一下:<b原创 2010-08-11 08:27:00 · 1174 阅读 · 0 评论 -
linux上更改TCP窗口大小
<br />使用route命令。像ifconfig, route, ip等这些工具参数非常多,有问题时应该看看这些工具的参数。窗口大小的变动对FTP等程序性能影响很明显。<br /><br />[root@jcwkyl ipv4]# route del -net 10.60.56.0/24<br />[root@jcwkyl ipv4]# route add -net 10.60.56.0/24 window 4096 dev eth0<br />[root@jcwkyl ipv4]# route -n原创 2011-04-26 19:24:00 · 15389 阅读 · 0 评论 -
ubuntu9.0.4上安装xen内核
<br />包括xen的wiki和howto上都只说用apt-get安装ubuntu-xen-server或者ubuntu-xen-desktop,然后就直接跳到“重新启动进入dom0内核”了,但丝毫不提安装server或者desktop根本不会安装内核,只会装模作样在/boot下产生一个xen-3.3.gz。普通用户安装到这里莫名其妙,开始怀疑自己是不是哪里弄错了,要说有内核它还真没有,说没有内核还产生了一个xen-3.3.gz,唉……<br />在ubuntu9.0.4下用apt-get原创 2011-04-26 19:28:00 · 6220 阅读 · 1 评论 -
linux上安装网卡驱动程序
<br />这篇日志记录在linux上安装网卡驱动的过程。使用dell的optiplex 360或者optiplex380机器,broadcom网卡,Centos 5.2, Fedora Core 8, Ubuntu9.0.4操作系统。实验室一直使用这种机器+网卡+操作系统的搭配,每次安装操作系统必定出现网卡驱动程序和声卡驱动程序无法使用的情况。因此,这一过程在实验室重复做了N遍。<br /><br />首先看网卡是否已经正确连接到计算机。这一步一般是不会有问题的。使用的命令是lspci原创 2011-04-14 20:36:00 · 14956 阅读 · 1 评论 -
linux编程获取本机IP地址的三种方法
<br />这是一项不太清晰而且没有多大意义的工作。一个原因是网络地址的设置非常灵活而且都是允许用户进行个性化设置的,比如一台计算机上可以有多块物理网卡或者虚拟网卡,一个网卡上可以绑定多个IP地址,用户可以为网卡设置别名,可以重命名网卡,用户计算机所在网络拓扑结构未知,主机名设置是一个可选项并且同样可以为一个计算机绑定多个主机名等,这些信息都会有影响。脱离了网络连接,单独的网络地址没有任何意义。编程中遇到必须获取计算机IP的场景,应该考虑将这一选项放到配置文件中,由用户自己来选择。<br /原创 2011-04-14 20:33:00 · 36216 阅读 · 1 评论 -
stateless linux设置脚本注解
<br />stateless linux是fedoracore的一个项目,顾名思义,就是系统运行时不保存持久状态信息,简单来说就是不让系统对持久存储设备(比如硬盘)进行写操作。一般用于readonly root技术。在我最近的程序中,用stateless linux来达到多个虚拟机共享同一份磁盘image。<br /><br />stateless linux的设置文件是/etc/sysconfig/readonly-root,/etc/rc.sysinit在系统启动时读取这个文件,并根据文件原创 2011-01-06 15:56:00 · 6408 阅读 · 0 评论 -
linux屏幕截图之滚动截屏
<br />linux下屏幕截图介绍 在http://blog.guoshuang.com/?p=4232总结了十种屏幕截图方法,非常不错。原文附在后面,这里先补充一点关于“滚动截屏”:<br />似乎这是一个很实用的需求,尤其是在截取一些精美网页的时候,截取网页在firefox中有个ScreenGrab插件,对于网页截图这款插件足够。其它场合下的滚动截屏,google一下在fedora论坛上有一个解释http://forums.fedoraforum.org/showthread原创 2010-12-16 10:43:00 · 14114 阅读 · 0 评论 -
linux下十六进制文件编辑器
<br />vim作为十六进制编辑器用vim打开二进制文件,切换到command模式,输入 :%!xxd可以把当前打开的文件转化为十六进制编辑模式,编辑完成以后再 :%!xxd -r转换回去保存。<br />在vim下,首先找开文件,按<esc>键,输入:%!xxd可以把当前buffer中的文件转换成十六进制和ASCII的形式,其中十六进制部分可以编辑,但ASCII部分不会随着编辑同步变动。编辑完成后,按<esc>键,输入:%!xxd-r可以把文件转换回去,然后保存文件。%!xxd中的%是c原创 2010-12-16 10:41:00 · 14873 阅读 · 1 评论 -
编译错误__sync_bool_compare_and_swap_4的解决
<br />做大文件的快速传输,需要调查一下bit torrent,下载了opentracker。<br />在编译libowfat的过程中,出现错误:<br />t.o: In function `main':<br />t.c:(.text+0x76): undefined reference to `__sync_bool_compare_and_swap_4'<br />t.c:(.text+0xa2): undefined reference to `__sync_bool_com原创 2010-12-16 10:56:00 · 16462 阅读 · 2 评论 -
如何找到linux命令的源代码
<br />比如想找到ls, cat, grep, less等这些工具的源代码观摩学习一下,虽然google一下什么都能找到,但使用软件包管理工具则更为方便。以cat的源代码为例:<br />[whb@jcwkyl keyan]$ which cat<br />/bin/cat<br />[whb@jcwkyl keyan]$ rpm -qif /bin/cat<br />Name :coreutils Relocations: (not原创 2010-12-16 10:54:00 · 6958 阅读 · 0 评论 -
linux下使用mplayer观看高清电影
<br />在centos下使用mplayer看高清电影,没想到出奇的卡。在网上搜索到一篇非常好的解决方法附在最下面。这里先记录自己实际的解决方法:<br />解决方法一:使用mplayer -framedrop参数来播放,效果也不错。<br />解决方法二:按照下文介绍的第2种方法,使用多线程mplayer来播放。由于下文中的链接不可用,另外git的代理配置也麻烦,所以直接去mplayer官方网站下载最新的mplayer的源代码包,接着去http://src.chromium.org/原创 2010-12-16 10:39:00 · 114791 阅读 · 0 评论 -
php解析html
<br />老师给了一个会议论文统计的excel文件,其中统计了总共提交的将近200篇论文的ID, 最终题目,作者,任务是把每一篇论文的email填充上去。手动填充费时易错,于是考虑写程序来做这件事:<br />使用php的pear库直接读写excel文件。需要安装 pear,可能还需要做些配置工作,额外工程量太大;把excel文件另存为csv文件。缺点是太不直观;把excel文件另存为html文件,直接解析html;<br />下面是用php解析html文件并填充论文email的php代码原创 2010-06-20 17:52:00 · 6163 阅读 · 0 评论 -
apache防止ddos攻击的几个有用工具
<br />一:<br />来自http://www.inetbase.com/scripts/的ddos脚本。这套脚本的开发初衷就是为了防止ddos攻击,它周期性运行(比如每隔一秒),每次运行时使用netstat命令记录下当前的网络连接情况,从记录的数据中筛选出客户机的IP并统计出每个客户IP的连接数,将连接数与设定的阈值相比,如果一个IP有过多的连接,它将被放入黑名单。放入黑名单的IP在一段时间内(比如10分钟以内)向服务器发送的请求将被iptables丢弃。<br />这个脚本原创 2010-06-20 17:50:00 · 5406 阅读 · 0 评论 -
好用的工具---screen命令
<br />问题场景:要在服务器上配置环境,但是我的电脑无法直接连到服务器上,通常要经过好几次ssh跳转。配环境需要设置好几个用户,这自然需要同时打开好几个连接服务器的终端窗口,每个连接到服务器的终端窗口都要经过好几次ssh才能连接,不胜其烦。中转的电脑没有root权限,不能用iptables等工具设置端口映射。<br />解决方法:在从我电脑起的下一跳电脑上使用screen创建好几个session窗口,每次连接到下一跳电脑上就可以直接进行配置环境的操作。<br />screen用法:<原创 2010-08-11 08:24:00 · 3384 阅读 · 0 评论 -
网格环境配置(二):配置NIS和NFS服务器
配置NIS服务设置NIS服务端。作为一个NIS服务器,需要安装ypserv软件包。直接使用安装光盘中的ypserv-2.8-3。第一步:设置ypserv服务开机后自动启动[root@vm1 root]#chkconfig ypserv on [root@v原创 2009-12-02 21:37:00 · 4011 阅读 · 0 评论 -
网格环境配置(四):安装gt4和gt4-sge adapter
在vm1上安装gt4首先安装各种必须的包,安装了安装光盘上的postgresql-lib,postgresql7.3.4, postgresql-server,安装了jdk-1_5_0_05-linux-i586.bin,apache-ant-1.6.5-bin.tar,检查一下gcc,g++,sed,原创 2009-12-03 08:18:00 · 2472 阅读 · 0 评论 -
xen 3.2.0 在cent os 5上的安装日志
经过这几天来的磕磕碰碰,总算成功安装上了Xen 3.2.0。 对于像globus, linux内核,xen这样的大型系统的安装和部署,准备工作一定要做足。安装前一定要详细阅读附带的安装文档,而不是从网上找一大堆别人的安装文档然后挑一篇出来作为自己的指导文档,一定要详细看安装包中附带的文档,一篇也不放过。在安装时原创 2009-07-26 18:20:00 · 3700 阅读 · 0 评论 -
使用LVM在vmware中增大linux的根分区
近日在vmware中虚拟的cent os上安装xen时,安装过程进行了一个多小时后,make说磁盘空间不够,异常退出了,令人深感郁闷。这个时候,只想到了两个解决方法:一,看看vmware能不能改变硬盘大小;二,用vmware给虚拟机操作系统添加一块硬盘。这两种方法都能增大硬盘容量,等增大硬盘容量后,再考虑如何改变分区大原创 2009-07-25 21:23:00 · 5261 阅读 · 1 评论 -
linux中man文档的分类
例如查wait这个命令, [root@jcwkyl /]# man -k wait 部分输出如下: wait (1p) - await process completion wait (2) - wait for proce原创 2009-07-25 16:49:00 · 2966 阅读 · 0 评论 -
如何卸载以源码方式安装的软件
来自网络:http://linuxeden.com/forum/thread-106618-1-1.html 如何卸载以源代码方式安装的软件 通常的方法是在源代码目录下执行 make uninstall 如果源代码没有提供uninstall方式,那么就没有什么好的方法卸载 这就需要我们在安装此类源代码软件时转载 2009-07-16 09:57:00 · 5692 阅读 · 0 评论 -
复杂的指针声明的两种解读方法
例如下面两个声明:char* const*(*ss[23][200])(void (*)(int h, void (*)(void))));int *(*f4())[10]();上面两个例子都是从经典的C/C++书上找到的。《C++编程思想》和《C FAQS》两本书上总共给出了两种解读的方法:使用cdecl工具;从标识符开始按照右——左——右——……这个顺序手工解读。第一种原创 2009-04-18 12:28:00 · 1444 阅读 · 0 评论 -
一个开源的高精度运算库——gmp
全称是GNU Multiple Precision Arithmetic Library,即GNU高精度算术运算库,官方网站是:http://gmplib.org/ 它的功能非常强大,接口很简单,文档详尽,有C风格的接口也有C++的精心封装后的接口,其中不但有普通的整数、实数、浮点数的高精度运算,还有随机数生成,尤其是提供了非常完备的数论中的运算接口,比如Miller-Rabin素数测试算法,大素原创 2008-12-18 22:29:00 · 10357 阅读 · 3 评论 -
正则表达式元字符集
&l基本元字符元字符说明.匹配任意单个字符|逻辑或操作符[]定义一个字符集合,匹配该集合中的一个字符[^]对字符集合求非(是对整个集合求非,而不是紧挨着^符号的字符)-在字符集合中定义一个区间。如[A-Za-z]/对下一个字符转义。比如/n表示换行。原创 2009-02-08 18:28:00 · 9879 阅读 · 3 评论 -
一个简易的正则表达式测试工具
设想、验证、比较、总结这无穷循环贯穿于学习正则表达式的始终。为了便捷直观地看到一个正则表达式作用于一段文本的匹配结果,使用PHP写了一个简易的正则表达式测试工具。正则表达式的匹配使用PHP中的preg_match函数。页面中一个textarea用来输入待搜索的文本,一个edit用来输入正则表达式。主要代码如下:$pattern = /.$_GET[pattern]./;$res原创 2009-01-21 12:51:00 · 1303 阅读 · 0 评论