Category: Linux

  • update-rc.d的用法

    update-rc.d为debian/ubuntu管理开机启动的工具,类似于chkconfig

    详细用法可查阅帮助信息

    update-rc.d --help

    查看系统当前的初始化服务

    $ ls /etc/init.d/
    $ ls /etc/rc?.d

    增加或删除开机启动项

    update-rc.d -f <service> remove # 删除开机启动项服务
    update-rc.d <service> start <order> <runlevels> # 新增系统启动项服务
    update-rc.d <service> stop <order> <runlevels> # 停用某系统启动项

    修改启动项的启动级别

    update-rc.d [-n] name disable|enable [ S|2|3|4|5 ]

    例子

    update-rc.d php-fpm defaults # 新增系统启动项,开机即运行php-fpm服务
    update-rc.d -f apache2 remove # 将apache2从启动项里删除
    update-rc.d minecraft_server defaults #开机运行minecraft
    update-rc.d -f minecraft_server remove #将minecraft从启动项移除

    如将pptpd从开机启动中移除

    # update-rc.d -n -f pptpd remove
     Removing any system startup links for /etc/init.d/pptpd ...
     /etc/rc1.d/K20pptpd
     /etc/rc2.d/S20pptpd
     /etc/rc3.d/S20pptpd
     /etc/rc4.d/S20pptpd
     /etc/rc5.d/S20pptpd

    自己编译安装的想要加到开机运行服务中,还可以编写一个abc文件,具体可参考其他/etc/init.d/中的文件,放到/etc/init.d/abc

    #! /bin/sh
    # /etc/init.d/abc
    #
    # Some things that run always
    touch /var/lock/abc
    # Carry out specific functions when asked to by the system
    case "$1" in
     start)
     echo "Starting script abc "
     echo "Could do more here"
     ;;
     stop)
     echo "Stopping script abc"
     echo "Could do more here"
     ;;
     *)
     echo "Usage: /etc/init.d/abc {start|stop}"
     exit 1
     ;;
    esac
    exit 0

    给其加上权限

    chmod 755 /etc/init.d/abc

    添加启动链接即可

    # update-rc.d abc defaults
  • 使用fdisk对ec2重新分区

    测试实例为ec2的m1.medium,默认安装好之后/dev/sdb挂载到了/media/ephemeral0,现在用fdisk对/dev/sdb重新分为两个区。

    fdisk /dev/sdb

    这里按m可查看可操作的命令

    1).按p显示当前的分区情况;
    2).按d删除分区
    3).按n新建一个主分区,输入起止柱面号得到sdb1,然后同样操作得到sdb2
    4).最后按w,将上面的操作写入到磁盘

    最后重启后,磁盘分区工作完成。P.S. 如果不想重启,可以使用partprobe使分区生效。

    接下来将分区格式化为ext4格式

    mkfs.ext4 /dev/sdb1
    mkfs.ext4 /dev/sdb2

    要正常使用,需要磁盘分区挂载到对应挂载点。查看mount的用法 http://jpuyy.com/2012/12/mount-umount-usage.html

    同时将两个分区开机自动挂载,编辑/etc/fstab,加入

    /dev/sdb1 /data ext4 defaults 0 0
    /dev/sdb2 /backup ext4 defaults 0 0

    查看/etc/fstab各段的意思可man fstab.

  • ec2打开icmp request

    在ec2的安全组(security groups)里,有很丰富的规则设置。

    如果需要用ping的方式判断网络情况,默认是会有”Request Time Out”

    打开icmp request:

    登录到aws,进入到”Security Groups”.选择相应的group,在 Inbound中,勾选Custom ICMP rule

    类型选择: Echo request

    Source:0.0.0.0/0,允许所有地址访问。

     

  • mount,umount用法

    命令格式:

    mount -a ,会把/etc/fstab列出的文件系统挂载

    mount -t 类型 -o 挂接方式 源路径 目标路径

    -t 详细选项:

    光盘或光盘镜像:iso9660
    DOS fat16文件系统:msdos
    Windows 9x fat32文件系统:vfat
    Windows NT ntfs文件系统:ntfs
    Mount Windows文件网络共享:smbfs(需内核支持)推荐cifs
    UNIX(LINUX) 文件网络共享:nfs

    -o 详细选项:

    loop :用来把一个文件当成硬盘分区挂接上系统
    ro :采用只读方式挂接设备
    rw :采用读写方式挂接设备
    iocharset :指定访问文件系统所用字符集,例如iocharset=utf8
    remount :重新挂载(相当于umount再mount),后面可接具体路径
    noatime: 以不更新access time的方式挂载,在文件数目过多注重性能而不注重access time时使用,效果好。

    使用实例:

    挂载windows文件共享

    mount -t smbfs -o username=admin,password=123456 //192.168.1.2/c$ /mnt/samba
     mount -t cifs -o username=xxx,password=xxx //IP/sharename /mnt/dirname

    挂载Linux文件nfs共享

    mount -t nfs -o rw 192.168.1.2:/usr/www /usr/www

    挂载ntfs格式USB移动硬盘

    mount -t ntfs /dev/sdc1 /root/usb

    挂载CDROM

    mount /dev/cdrom /home/cd

    单用户模式重新挂载根分区

    mount -o remount,rw /

    umount命令用于解挂一个文件系统,之前挂载的哪就解挂哪,一般要退出对应目录且不再使用,否则会提示  umount: /mnt/iso: device is busy.

    umount [-f] directory ,如果文件系统正在使用时会无法解挂,可使用-f,强制解挂

    取消挂载

    umount /dev/cdrom /home/cd

    iso相关

    挂载iso镜像

    mkdir -p /mnt/iso
    mount -o loop -t iso9660 XenServer-6.1-install-cd.iso /mnt/iso

    制作光盘镜像

    当cdrom有光盘时

    cp /dev/cdrom ~/mydisk.iso

    制作指定目录/root/dir的镜像

    mkisofs -r -J -V iso-real-name -o /usr/mydisk.iso /root/dir

    高级例子

    mount -o bind或mount –bind

    一盘mount都是挂载设备文件,使用mount -o bind可以把目录,文件挂载到另一个目录,文件

    如把/tmp/hosts文件挂载到/etc/hosts

    touch /tmp/hosts

    这时/tmp/hosts是空的,当将/tmp/hosts挂载到/etc/hosts后,注意顺序

    mount -o bind /tmp/hosts /etc/hosts

    使用mount命令可以查看到/tmp/hosts on /etc/hosts type none (rw,bind)

    发现/tmp/hosts与/etc/hosts都是空的了,当umount /tmp/hosts之后,又恢复成原来的/etc/hosts。这样可以随便别人用/etc/hosts,当别人用完之后,umount就能切换过来。

    mount -o bind参考:http://nvd11.blog.163.com/blog/static/2000183122012720113256766/

  • centos6.2 x64安装vnc

    有的客户想买vps使用vnc,不知道这样做的意义在哪,不过安装一下练练手也可以。这里使用的版本是centos6.2 x64.

    参考:https://www.grumpyland.com/blog/72/tutorial-installing-vnc-for-centos-6-vps/

    ##安装epel包
    rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-7.noarch.rpm
    rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
    ##安装桌面
    yum groupinstall -y Desktop Fonts Xfce
    ##安装vnc-server
    yum install -y tigervnc-server

    操作vnc不要用root,创建用户jpuyy

    useradd jpuyy
    passwd jpuyy

    接下来使用jpuyy来操作

    #su -l jpuyy
    $vncpasswd

    输入两次密码之后,在~/.vnc/下有一个文件passwd ,说明创建vnc用户成功。

    接下来ctrl+D,使用root操作

    vi /etc/sysconfig/vncservers

    写入如下内容,意思是第一个用户为jpuyy,分辨率为1024×786

    VNCSERVERS="1:jpuyy"
    VNCSERVERARGS[1]="-geometry 1024x786"

    启动vncserver

    service vncserver start

    可设置开机启动

    /sbin/chkconfig vncserver on

    为了更佳的体验效果,安装firefox,首先安装rpmforge源

    rpm -ivh http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
    yum install -y firefox
    yum install -y flash-plugin

    这时,使用vnc客户端,打开ip:5901,密码为执行$vncpasswd时创建的密码。即可使用vnc远程进行管理。

  • rpm命令

    用CentOS也有一段时间了,整理一下rpm命令的用法

    安装.rpm的文件,-i代表–install,-v代表–verbose,-h代表–hash 以#显示安装进度

    rpm -ivh package.rpm

    升级软件包

    rpm -U packupdate.rpm

    查看已经安装的软件

    列出已经安装的全部软件包,查具体包可接 | grep 来筛选,或使用通配符

    rpm -qa

    例如:

    # rpm -qa httpd* 
    httpd-tools-2.2.15-15.el6.centos.1.x86_64
    httpd-2.2.15-15.el6.centos.1.x86_64
    或
    # rpm -qa | grep http
    httpd-tools-2.2.15-15.el6.centos.1.x86_64
    httpd-2.2.15-15.el6.centos.1.x86_64

    找到某文件属于哪个软件包,使用

    rpm -qf filename

    例如:

    rpm -qf /etc/httpd/conf/httpd.conf

    执行结果: httpd-2.2.15-15.el6.centos.1.x86_64

    -qi 查看已经安装的软件包的功能,

    rpm -qi packagename

    -pqi 查看没有安装的.rpm包的详细信息

    [root@localhost ~]# rpm -pqi epel-release-6-8.noarch.rpm 
    Name        : epel-release                 Relocations: (not relocatable)
    Version     : 6                                 Vendor: Fedora Project
    Release     : 8                             Build Date: Mon 05 Nov 2012 11:54:41 AM CST
    Install Date: (not installed)               Build Host: buildvm-05.phx2.fedoraproject.org
    Group       : System Environment/Base       Source RPM: epel-release-6-8.src.rpm
    Size        : 22169                            License: GPLv2
    Signature   : RSA/8, Mon 05 Nov 2012 11:29:49 PM CST, Key ID 3b49df2a0608b895
    Packager    : Fedora Project
    URL         : http://dl.fedoraproject.org/pub/epel/
    Summary     : Extra Packages for Enterprise Linux repository configuration
    Description :
    This package contains the Extra Packages for Enterprise Linux (EPEL) repository
    GPG key as well as configuration for yum and up2date.

    如查看wget的功能说明

    rpm -qi wget

    删除已经安装的软件包

    rpm -e packagename

    查看已经安装好的软件包都包含哪些文件

    rpm -ql iptables

    查看某个 rpm 包包含有哪些文件

    rpm -qlp package.rpm

    对于 yum 源里没有安装在本机的 rpm 包查看要装哪些文件,可以这样查(前提要安装好yum-utils)

    repoquery -q -l --plugins memcached

    参考:http://www.cyberciti.biz/faq/howto-list-find-files-in-rpm-package/