日历

2010年二月
    3月 »
1234567
891011121314
15161718192021
22232425262728

最近评论

    linux/unix基础知识

    Linux系统调用函数和工具

    一、进程控制:

    fork 创建一个新进程
    clone 按指定条件创建子进程
    execve 运行可执行文件
    exit 中止进程
    _exit 立即中止当前进程
    getdtablesize 进程所能打开的最大文件数
    getpgid 获取指定进程组标识号
    setpgid 设置指定进程组标志号
    getpgrp 获取当前进程组标识号
    setpgrp 设置当前进程组标志号
    getpid 获取进程标识号
    getppid 获取父进程标识号
    getpriority 获取调度优先级
    setpriority 设置调度优先级

    linux/unix基础知识

    TCP/IP的三次握手

    TCP(Transmission Control Protocol) 传输控制协议

    TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接:

    第一次握手:主机A发送位码为syn=1,随机产生seq number=100的数据包到服务器,主机B由SYN=1知道,A要求建立联机;

    第二次握手:主机B收到请求后要确认联机信息,向A发送ack number=(主机A的seq+1),syn=1,ack=1,随机产生seq=200的包

    第三次握手:主机A收到后检查ack number是否正确,即第一次发送的seq number+1,以及位码ack是否为1,若正确,主机A会再发送ack number=(主机B的seq+1),ack=1,主机B收到后确认seq值与ack=1则连接建立成功。

    完成三次握手,主机A与主机B开始传送数据。

    位码即tcp标志位,有6种标示: SYN(synchronous建立联机) ,ACK(acknowledgement 确认) ,PSH(push传送) ,FIN(finish结束) ,RST(reset重置), URG(urgent紧急),Sequence number(顺序号码) Acknowledge number(确认号码)

    linux视频

    林夕昱作品- 程序与资源管理 第5讲

    在线观看: http://www.boobooke.com/v/bbk4119

    linux/unix基础知识

    vsfptd权限控制命令语句

    在配置FTP的过程中,使用vsfptd默认的控制权限可能有一些不如意地方,在这里列出一些控制权限的控制命令,希望能对大家有用!在/etc/vsftpd/vsftpd.conf中需要加上user_config_dir=/etc/vsftpd/user_configfile来指明用户权限配置的位置。

    首先来看看下面的几个例子:

    1、只能上传。不能下载、删除、重命名。
    cmds_allowed=FEAT,REST,CWD,LIST,MDTM,MKD,NLST,PASS,PASV,PORT,PWD,QUIT,RMD,SIZE,STOR,TYPE,USER,ACCT,APPE,CDUP,HELP,MODE,NOOP,REIN,STAT,STOU,STRU,SYST
    2、只能下载。不能上传、删除、重命名。write_enable=NO

    3、只能上传、删除、重命名。不能下载。download_enable=NO

    4、只能下载、删除、重命名。不能上传。

    linux/unix基础知识

    linux学习环境的搭建

    对于一个linux初学者,不建议直接在计算机上安装linux,初学者可以选择在windows操作系统是安装vmware workstation,在vmware上安装linux操作系统,这样在有问题不会解决的时候可以在windows操作系统下通过www.baidu.com,www.google.cn等搜索引擎搜索出现的问题。使用虚拟机学习linux对初学者是一个快速便捷的方法。

    VMware现在的版本已经有7.0了,在这里我依然使用6.0版,6.0版的vmware大约在309M,可以在网上搜索并下载,linux操作系统我们选择Centos5.4和redhat Enterprise linux(rhel)5.4。

    首先安装vmware,windows 下的安装步骤,点击下一步就可以了,在安装过程中,vm会安装两个虚拟网卡(virtual Ethernet adapter for Vmnet1和Vmnet8), 安装完虚拟网卡后,需要你输入username,company,和serial number,vm6的安装序列号,大家可以在网上搜索一个,我在这里搜索道德序列号是:6U4R5-5HQ03-M244C-4WXXK,安装完成后,提示你重新启动计算机,如果合适,你可以安装选择yes重新启动计算机,如果不合适,点击no,虽然没有重启计算机,vmware依然可以使用。

    双击vmware,第一次启动vm虚拟机软件,会出现一个许可协议,选择yes,I accept就可以了。

    linux视频

    我的linux视频

    1.林夕昱作品:鸟哥私房菜之第五章

    2.林夕昱作品:鸟哥私房菜之第六章 – 1

    3.林夕昱作品:鸟哥私房菜之第六章 – 2

    4.林夕昱作品:鸟哥私房菜之Linux 文件和目录管理 – 1

    5.林夕昱作品:鸟哥私房菜之Linux 文件和目录管理 – 2

    6.林夕昱作品:鸟哥私房菜之Linux 文件和目录管理 – 3

    7.林夕昱作品:鸟哥私房菜之Linux 文件和目录管理 – 4

    8.林夕昱作品:鸟哥私房菜2nd之Linux磁盘与文件系统管理 – 1/3

    9.林夕昱作品:鸟哥私房菜2nd之Linux磁盘与文件系统管理 – 2/3

    10.林夕昱作品:鸟哥私房菜2nd之Linux磁盘与文件系统管理 – 3/3

    11.林夕昱作品:鸟哥私房菜2nd之文件的压缩与打包

    linux/unix基础知识

    linux压缩和解压缩命令tar

     tar命令格式:tar [-cxtzjvfpPN] 文件与目录 ….
    参数:
    -c :建立一个压缩文件的参数指令(create 的意思);
    -x :解开一个压缩文件的参数指令!
    -t :查看 tarfile 里面的文件!
    特别注意,在参数的下达中, c/x/t 仅能存在一个!不可同时存在!因为不可能同时压缩与解压缩。
    -z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?
    -j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩?
    -v :压缩的过程中显示文件!这个常用,但不建议用在背景执行过程!
    -f :使用档名,一定要注意,在 f 之后要立即接文件或目录名,不要再加参数!例如使用『 tar -zcvfP tfile sfile』就是错误的写法,要写成
       『 tar -zcvPf tfile sfile』才对
    -p :使用原文件的原来属性(属性不会依据使用者而变)
    -P :可以使用绝对路径来压缩!
    -N :比后面接的日期(yyyy/mm/dd)还要新的才会被打包进新建的文件中!
    –exclude FILE:在压缩的过程中,不要将 FILE 打包!

    常用的参数组合,tar zcvf;tar zxvf;tar jcvf;tar  jxvf;tar  ztvf;tar  jtvf

    linux/unix基础知识

    yum命令全集详解

    yum check-update  检查可更新的所有软件包
    yum update  下载更新系统已安装的所有软件包
    yum upgrade  大规模的版本升级,与yum update不同的是,连旧的淘汰的包也升级
    yum install <packages>  安装新软件包
    yum update <packages>  更新指定的软件包
    yum remove <packages>  卸载指定的软件包
    yum groupinstall <groupnames>  安装指定软件组中的软件包
    yum groupupdate <groupnames>  更新指定软件组中的软件包
    yum groupremove <groupnames>  卸载指定软件组中的软件包
    yum grouplist  查看系统中已经安装的和可用的软件组
    yum list  列出资源库中所有可以安装或更新以及已经安装的rpm包
    yum list <regex>  列出资源库中与正则表达式匹配的可以安装或更新以及已经安装的rpm包
    yum list available  列出资源库中所有可以安装的rpm包
    yum list available <regex>  列出资源库中与正则表达式匹配的所有可以安装的rpm包
    yum list updates  列出资源库中所有可以更新的rpm包
    yum list updates <regex>  列出资源库中与正则表达式匹配的所有可以更新的rpm包
    yum list installed  列出资源库中所有已经安装的rpm包
    yum list installed <regex>  列出资源库中与正则表达式匹配的所有已经安装的rpm包
    yum list […]

    linux/unix基础知识

    使用yum更新系统

    为什么使用 yum
    Linux系统维护中令管理员头疼的就是软件包之间的依赖性,往往是你要安装A软件,但是编译的时候告诉你A软件安装之前需要B软件,而当你安装B软件的时候,又告诉你需要C库了,好不容易安装好C库,发现版本还有问题等。由于历史原因,RPM软件包管理系统对软件之间的依存关系没有内部定义,造成安装RPM软件时经常出现令人无法理解的软件依赖问题。其实开源社区早就对这个问题尝试进行解决了,不同的发行版推出了各自的工具,比如Yellow Dog的YUM(Yellow dog Updater, Modified),Debian的APT(Advanced Packaging Tool)等。开发这些工具的目的都是为了要解决安装RPM时的依赖性问题,而不是额外再建立一套安装模式。这些软件也被开源软件爱好者们逐渐移植到别的发行版上。目前,APT和YUM都可以运行在RedHat系统上。目前 yum 是RedHat/Fedora系统上默认安装的更新系统。

    yum 是 Yellow dog Updater, Modified 的简称,起初是由yellow dog 发行版的开发者 TerraSoft 研发,用 python 写成,那时叫 yup (yellow dog updater),后经杜克大学的 Linux@Duke开发团队进行改进后,才称为yum。yum 的目的是自动化地升级,安装/移除rpm 包,收集rpm 包的相关信息,检查依赖性并自动提示用户解决。yum 的关键是要有可靠的 repository(软件仓库),它可以是 http 或 ftp 站点,也可以是本地软件池,但必须包含 rpm 的 header,header 包括了rpm 包的各种信息,包括描述,功能,提供的文件,依赖性等,在收集了这些header并加以分析,自动化地完成余下的任务。

    yum 的特点:
    自动解决包的倚赖性问题能更方便的添加/删除/更新RPM包
    便于管理大量系统的更新问题
    可以同时配置多个资源库(Repository)
    配置文件(/etc/yum.conf)
    保持与RPM数据库的一致性

    linux/unix基础知识

    lsof命令的使用

    lsof输出信息含义
    在终端下输入lsof即可显示系统打开的文件,系统打开的文件很多,只有root账号登录,打开的文件就有1400多个。因为 lsof 需要访问核心内存和各种文件,所以必须以 root 用户的身份运行它才能够充分地发挥其功能。

    [root@localhost ~]# lsof | head
    COMMAND    PID      USER   FD      TYPE     DEVICE     SIZE       NODE NAME
    init         1      root  cwd       DIR        8,2     4096          2 /
    init         1      root  rtd       DIR        8,2     4096          2 /
    init         1      root  txt       REG        8,2    38652    5990772 /sbin/init
    init         1      root  mem       REG        8,2   245376    7006896 /lib/libsepol.so.1
    init         1      root  mem       REG        8,2    93508    […]

    linux企业应用

    keepalvied无法和ipvs结合的问题

    今天在编译keepalived后启动。发现ipvsadm -l显示一直是空,没有服务器池,而我的配置文件是正确配置的,百思不得其解,以同样的方式安装了几次操作系统,都没有解决,操作系统是CentOs 5.4,keepalived也编译过几次,都没用。
    后来在一次编译keepalived时才发现configure的最后几行如下:
    Keepalived version       : 1.1.15
    Compiler                 : gcc
    Compiler flags           : -g -O2
    Extra Lib                : -lpopt -lssl -lcrypto
    Use IPVS Framework       : No
    IPVS sync daemon support : No

    Use VRRP Framework       : Yes
    Use LinkWatch            : No
    Use Debug flags          : No

    原来是没有找到内核源代码。faint。keepalived默认编译时是在/usr/src/linux下找内核源代码。可是我的内核源代码都在:/usr/src/kernels/2.6.18-164.el5-i686/(安装yum -y install kernel-devel) 这个目录下。
    解决办法: ln -s /usr/src/kernels/2.6.18-164.el5-i686/  /usr/src/linux
    然后重新编译keepalived

    linux企业应用

    ipvsadm命令参数

    1,virtual-service-address:是指虚拟服务器的ip 地址

    2,real-service-address:是指真实服务器的ip 地址

    3,scheduler:调度方法

    ipvsadm 的用法和格式如下:

    ipvsadm -A|E -t|u|f virutal-service-address:port [-s scheduler] [-p

    [timeout]] [-M netmask]

    ipvsadm -D -t|u|f virtual-service-address

    ipvsadm -C

    ipvsadm -R

    ipvsadm -S [-n]

    ipvsadm -a|e -t|u|f service-address:port -r real-server-address:port

    linux/unix基础知识

    关于umask关于umask

    1. 文件系统的权限表示方法有两种。
    一是直接用r、w、x来代表文件的所有者(u)、用户组(g)、其他用户(o)对某一文件或目录的读、写、执行(x)权限,称为字符表示法,例如 -rw-rw-rw-。二是用一组(三位)八进制数来间接表示文件或目录的权限属性,称为数字表示法,例如某文件的权限为755。

    注:所谓数字表示法是指将读取(r),写入 (w) 和执行(x) 分別以4,2,1来代表,沒有授予的部份就表示值为0,然后再把所授予的权限相加而成。
    2.在不考虑umask的情况下,新建一个文件或目录的权限应该都是rwxrwxrwx,但为了提高安全性,会默认去除新建文件的可执行权限(x),而对于新建的目录,可执行位x与可否被允许进入该目录有关,因此Linux约定:
    新建文件的权属是-rw-rw-rw-,权限值是666。
    新建目录的权属是drwxrwxrwx,权限值是777。
    那么,在给定系统umask的情况下,新建文件或目录的默认权限如下赋予:
    新建文件的约定权限 - UMASK表示的权限 = 文件的默认权限
    新建目录的约定权限 - UMASK 表示的权限 = 目录的默认权限
    这里的减号(-)更确切地说是屏蔽的意思。
    例如当前系统的UMASK值为002,或者表示为— — -w-。那么新建一个文件或目录的默认权限为:
    新建文件的约定权限 - UMASK表示的权限 = 文件的默认权限
    -rw-rw-rw- - — — -w- = -rw-rw-r-
    表示在约定权限的基础上屏蔽除所有者(u)、同组用户(g)之外其他用户(o)的可写权限。此时在系统中新建一个文件时,该文件的默认权限就是-rw-rw-r-了,这样就会理解为什么UMASK是一个掩码值了

    linux/unix基础知识

    fuser命令解释和使用

    fuser – identify processes using files or sockets 确认进程使用的文件或套接字

    DESCRIPTION
           fuser  displays  the  PIDs  of processes using the specified files or file systems.  In the default display mode, each file name is followed by a letter   denoting the type of access:       fuser  用来显示访问指定文件或文件系统的PID,在默认情况下,在每个PID后边都有一个字符,用来显示访问方式

                  c      current directory.         表示该PID在访问的是该目录

                  e      executable being run. 表示该PID是一个可执行文件

                  f      open file. f […]