日历

2017年十二月
« 9月    
 123
45678910
11121314151617
18192021222324
25262728293031

最近评论

    linux/unix基础知识

    Linux strace命令

    strace常用来跟踪进程执行时的系统调用和所接收的信号。 在Linux世界,进程不能直接访问硬件设备,当进程需要访问硬件设备(比如读取磁盘文件,接收网络数据等等)时,必须由用户态模式切换至内核态模式,通 过系统调用访问硬件设备。strace可以跟踪到一个进程产生的系统调用,包括参数,返回值,执行消耗的时间。
    输出参数含义

    root@ubuntu:/usr# strace cat /dev/null
    execve(“/bin/cat”, [“cat”, “/dev/null”], [/* 22 vars */]) = 0
    brk(0)                                  = 0xab1000
    access(“/etc/ld.so.nohwcap”, F_OK)      = -1 ENOENT (No such file or directory)
    mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f29379a7000
    access(“/etc/ld.so.preload”, R_OK)      = -1 ENOENT (No such file or directory)

    brk(0) = 0xab1000
    brk(0xad2000) = 0xad2000
    fstat(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 0), …}) = 0
    open(“/dev/null”, O_RDONLY) = 3
    fstat(3, {st_mode=S_IFCHR|0666, […]

    linux/unix基础知识

    访问ESXi5服务器的方式

    访问ESXi5服务器的方式有很多,可以配置vcenter-db,vcenter,dc三个服务器,来配置相关设定来访问ESXi服务器,dc用来配置DNS,vcenter用来提供VMware vSphere访问服务,vcenter-db提供数据库服务。在这种方式下,可以使用域名直接访问,比如我在此处配置的域名vcenter.myfreelinux.com,在VMware vSphere Client中输入这个名字,administrator用户和密码,登录VMware vSphere Client后添加ESXi主机,就可以管理ESXi服务器了。

    第二种方式是直接在VMware vSphere Client中输入ESXi5的IP地址,ESXi5的用户root和密码,就可以登录到ESXi5,进行相关管理了。
    第三种方式是配置了vcenter-db,vcenter,在VMware vSphere Client中输入vcenter.myfreelinux.com(dc服务器得启动,或者直接输入vcenter的IP地址),用户administrator和密码,也可以维护ESXi5服务器。

    linux/unix基础知识

    sed的几个常用用法

    linux下sed是个流文本编辑器,它一次处理一行内容,处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出或使用sed -i参数进行保存。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等.
    下面介绍linux下sed命令几个经典用法

    1. 去掉空行
    sed ‘/^$/d’  yourfile

    2. 在shell中,用某个变量(参数)替换文本中的指定字符串,如果在sed中引用变量,必须用双引号“哦。否则变量不生效
    如用$myarg变量替换myfreelinux.com
    myarg=”test arg”
    echo “linux site:http://www.myfreelinux.com”  | sed “s/myfreelinux.com/$myarg/g”
    结果:
    linux site:http://www.test arg

    3. 删除(去掉)每行末尾的最后一个字符,行末尾的任意一个字符都会被删除哦,常用场景构造mysql多行insert值的sql语句
    sed ‘s/.$//’  yourfile

    4.替换字符(含有/特殊符号的),这里命令中的斜杠/可以用其他符号代替,如用#号
    如把/用@替换
    echo “http://myfreelinux.com/”  | sed ‘s#/#@#g’
    如果一定要用/斜杠的话,命令必须把要替换的斜杠先转义
    echo “http://myfreelinux.com/” | sed ‘s/\//@/g’

    5. 在行首或者行尾增加字符串
    如在行首增加myfreelinux.com
    echo “mychar”  | sed ‘s/^/myfreelinux.com/g’
    在行尾增加myfreelinux.com
    echo “mychar”  | sed ‘s/$/myfreelinux.com/g’

    6.删除第N行:
    sed  ‘Nd’ filename

    删除第M到N行:
    sed  ‘M,Nd’ filename

    7.删除匹配内容所在的行
    sed /PATTERN/d filename

    8.匹配内容后增加某内容
    在匹配forbag.cn内容后增加myfreelinux.com这一行内容
    sed ‘/forbag.cn/a\myfreelinux.com’ youfile
    在匹配forbag.cn内容前增加myfreelinux.com这一行内容
    sed ‘/forbag.cn/i\myfreelinux.com’ youfile

    9.匹配字符串,然后在匹配的行之下插入多行文本(即插入一个文件),该文本预先写入某个文件
    在yourfile匹配myfreelinux.com内容后增加forbag.txt这个文件
    sed -i ‘/myfreelinux.com r forbag.txt’  yourfile

    linux/unix基础知识

    恢复删除的文件

    当Linux计算机受到入侵时,常见的情况是日志文件被删除,以掩盖攻击者的踪迹。管理错误也可能导致意外删除重要的文件,比如在清理旧日志时,意外地删除了数据库的活动事务日志。有时可以通过lsof来恢复这些文件。

    当进程打开了某个文件时,只要该进程保持                   打开该文件,即使将其删除,它依然存在于磁盘中。这意味着,进程并不知道文件已经被删除,它仍然可以向打开该文件时提供给它的文件描述符进行读取和写入。除了该进程之外,这个文件是不可见的,因为已经删除了其相应的目录索引节点。

    在/proc 目录下,其中包含了反映内核和进程树的各种文件。/proc目录挂载的是在内存中所映射的一块区域,所以这些文件和目录并不存在于磁盘中,因此当我们对这些文件进行读取和写入时,实际上是在从内存中获取相关信息。大多数与lsof 相关的信息都存储于以进程的PID 命名的目录中,即/proc/1234 中包含的是PID 为1234 的进程的信息。每个进程目录中存在着各种文件,它们可以使得应用程序简单地了解进程的内存空间、文件描述符列表、指向磁盘上的文件的符号链接和其他系统信息。lsof 程序使用该信息和其他关于内核内部状态的信息来产生其输出。所以lsof 可以显示进程的文件描述符和相关的文件名等信息。也就是我们通过访问进程的文件描述符可以找到该文件的相关信息。

    当系统中的某个文件被意外地删除了,只要这个时候系统中还有进程正在访问该文件,那么我们就可以通过lsof从/proc目录下恢复该文件的内容。 假如由于误操作将/var/log/messages文件删除掉了,那么这时要将/var/log/messages文件恢复的方法如下:

    首先使用lsof来查看当前是否有进程打开/var/logmessages文件,如下:

    [root@station90 yum.repos.d]# lsof | grep /var/log/messages

    syslogd   2699      root    1w      REG                8,2   480817     330592 /var/log/messages (deleted)

    从上面的信息可以看到PID 2699(syslogd)打开文件的文件描述符为 1。同时还可以看到/var/log/messages已经标记被删除了。因此我们可以在/proc/2699/fd/1 (fd下的每个以数字命名的文件表示进程对应的文件描述符)中查看相应的信息,如下:

    [root@station90 fd]# pwd

    /proc/2699/fd

    [root@station90 fd]# cat 1 | head -n 5

    Jan 13 08:59:02 station90 syslogd 1.4.1: restart.

    Jan 13 10:44:22 station90 syslogd 1.4.1: restart.

    Jan 13 10:44:22 station90 kernel: klogd 1.4.1, […]

    linux/unix基础知识

    SCP,EXP,sql脚本

    scp的使用1例:

    [root@oracle11g lxy]# ll
    total 1803092
    -rw-r–r– 1 lxy lxy      28074 Sep 23 11:26 foshuo.txt
    -rw-r–r– 1 lxy lxy 1844527800 Aug 13 18:58 linux_11gR1_database_1013.zip
    [root@oracle11g lxy]# su – lxy
    [lxy@oracle11g ~]$ scp -rp  lxy@192.168.1.102:/home/lxy/linux_11gR1_database_1013.zip lwj@192.168.1.102:/home/lwj
    The authenticity of host ‘192.168.1.102 (192.168.1.102)’ can’t be established.
    RSA key fingerprint is 50:ca:98:f1:2f:81:56:39:e1:c5:fd:3b:bf:0a:b1:41.
    Are you sure you want to continue connecting (yes/no)? yes
    Warning: Permanently added ‘192.168.1.102’ (RSA) to […]

    linux/unix基础知识

    ls -1的一个小应用

    ls -1

    只列出文件名,而不显示其他信息,挺好用的.

    linux/unix基础知识

    CentOS 6.2 发布

    6.1 发布仅一个多星期,6.2就发布了。
    官方已经正式发布 CentOS 6.2,下载地址:

    http://isoredirect.centos.org/centos/6/isos/i386/
    http://isoredirect.centos.org/centos/6/isos/x86_64/

    linux/unix基础知识

    7-4 MEMORY存储引擎

    1、MEMORY存储引擎使用存在内存中的内容来创建。每个MEMORY表只是几对应一个磁盘文件,格式为.frm。MEMORY类型的表访问非常快,因为它的数据是放在内存中的,并且默认使用HASH索引,但是一旦关闭服务,标中的数据全部丢失。
    2、MEMORY类型的存储引擎主要用于哪些内容变化不频繁的代码标,或者作为统计操作的中间结果表,便于高效地对中建表进行分析并得到最终的统计结果。、
    mysql> insert into dept select 0,’a’;
    mysql> insert into dept select 0,’b’;
    mysql> insert into dept select 0,’c’;
    mysql> insert into dept select 0,’d’;

    mysql> create table mem_dept engine=memory select count(*) from dept;
    mysql> select * from mem_dept;
    +———-+
    | count(*) |
    +———-+
    |        4 |
    +———-+
    1 row in set (0.00 sec)
    mysql> show table status like ‘mem_dept’ \G 看一下表的结果,注意,必须用like,不能直接制定表名。
    *************************** 1. row […]

    linux/unix基础知识

    Linux 下安装 Oracle 11g

    Linux 下安装 Oracle 11g (最好的安装手册是官网下载)
    一,安装操作系统 选择全部安装包,进行完全安装
    二,内存检查:Oracle11g 需要至少 1GB 内存:
    [root@jwdb ~]# grep MemTotal /proc/meminfo
    MemTotal: 3751936 kB
    交换分区检查:Oracle11g 要求:
    RAM Between 1024 MB and 2048 MB Between 2049 MB and 8192 MB More than 8192 MB
    Swap Space 1.5 times the size of RAM Equal to the size of RAM 0.75 times the size of RAM

    [root@jwdb ~]# grep SwapTotal /proc/meminfo […]

    linux/unix基础知识

    /etc/hosts /etc/fstab的内容

    [root@oracleserver ~]# cat /etc/hosts
    # Do not remove the following line, or various programs
    # that require network functionality will fail.
    127.0.0.1               localhost.localdomain localhost
    ::1             localhost6.localdomain6 localhost6
    192.168.1.201   oracleServer
    [root@oracleserver ~]# cat /etc/fstab
    LABEL=/                 /                       ext3    defaults        1 1
    LABEL=/usr              /usr                    ext3    defaults        1 2
    LABEL=/boot             /boot                   ext3    defaults        1 2
    /dev/sda5               swap                    swap    defaults        0 0
    /dev/sda6               /u01                    ext3    defaults        0 0
    tmpfs                   /dev/shm                tmpfs   defaults        […]

    linux/unix基础知识

    linux命令unzip的命令参数

    unzip [-cflptuvz][-agCjLMnoqsVX][-P ][.zip文件][文件][-d ][-x ] 或 unzip [-Z]

    补充说明:unzip为.zip压缩文件的解压缩程序。

    参  数:

    -c 将解压缩的结果显示到屏幕上,并对字符做适当的转换。
    -f 更新现有的文件。
    -l 显示压缩文件内所包含的文件。
    -p 与-c参数类似,会将解压缩的结果显示到屏幕上,但不会执行任何的转换。
    -t 检查压缩文件是否正确。
    -u […]

    linux/unix基础知识

    RHEL6启动项的变动

    随着Red Hat Enterprise Linux(RHEL)6的发布,红帽将使用新的Upstart启动服务来替换以前的init。

    原有的System V init启动过程的缺点是,它基于包含了大量启动脚本的runlevel目录。而Upstart则是事件驱动型的,因此,它只包含按需启动的脚本,这将使 启动过程变得更加迅速。经过良好调优并使用Upstart启动方式的Linux服务器的启动速度要明显快于原有的使用System V init的系统。

    为了使Upstart更容易理解,它仍然使用了一个init进程。所以,你仍然可以看到/ sbin / init,它是所有服务的根进程。但是,如果你看一下文件/ etc / inittab,你会发现一切都变了。

    理解从init到Upstart的转变

    linux/unix基础知识

    RHEL6中,文件权限后面一个点的含义

    在使用RHEL6的时候,用ls -l命令查看文件的权限的时候,你可能会发现,这个权限的表示内容,已经与以前的版本不一样了,后面多了一个点,这个点是干吗的呢?搜索了很久也没有找到答案,很是郁闷啊!于是乎就只能自己慢慢研究。
    首先来看看我是如何找到答案的,这个也是我的思路,和大家分享一下。
    1、直接在网上搜索,但都找不到答案。
    2、怀疑会不会像域名一样,来用个点来表示结尾呢?
    3、怀疑这个可能是和权限有关,想到了ACL和SELinux。
    4、怀疑和文件系统有关,因为RHEL6已经用了EXT4。
    这些都是我想到的,可能和这个点有关的,猜测是可以的,但绝对不能误导别人,所以我就一一来排除和验证,最终得到结果是:

    这个点表示的是存在“SELinux的安全上下文”!

    linux/unix基础知识

    RHEL6配置yum本地源

    RHEL6.0配置本地yum源

    1将光驱的内容拷贝到一个目录内
    mount /dev/sr0 /mnt
    mkdir /yumsrc
    cp -a /mnt/* /yumsrc

    2在下面路径下创建下面的文件并添加内容如下:/etc/yum.repos.d/myfreelinux.repo内容如下:
    [DVDROM]
    name=myyum
    baseurl=file:///yumsource/ (dvdrom内容复制到的目录)
    gpgcheck=1  #用于指定是否检查软件包的GPG签名
    enabled=1
    3修改/usr/lib/python2.6/site-packages/yum/yumRepo.py
    将remote = url + ‘/’ + relative中的’/’修改为你的本地源目录yumsource

    清空并创建缓存:

    yum clean all

    yum makecache

    linux/unix基础知识

    图解RHEL6.0安装

    安装欢迎画面

    Install or upgrade an existing system:全新安装或更新一个已存在 RHEL 系统。
    Install system with basic video driver: 使用最基本的显卡驱动来安装操作系统(选择此项不影响安装过程,只是分辨率会比较低。)
    Rescue installed system:进入救援模式。
    Boot from local drive:直接引导启动本地驱动器(硬盘)中的系统。

    当然也可以使用 Tab 键进行编辑,如要想使用 kickstart 文件自动安装,可编辑如下图:

    可以输入 Linux 进入正常安装,或输入 rescue 进入救援模式。当然,如果是通过PXE+DHCP+TFTP实现的网络引导,还可以输入自定义的安装选项。 当然在安装欢迎画面选择第一项,直接回车,就进入下面这个画面:

    linux/unix基础知识

    RHEL 6 虚拟化的改进

    KVM虚拟化技术为RHEL 6提供了下一代虚拟化解决方案。因为KVM比Xen更新更有效,所以红帽公司将在RHEL 6中彻底放弃Xen(但会提供移植Xen虚拟机的方法)。

    优化的过程处理

    RHEL进程可以在储存桶中组织:可以分配CPU和其他资源的实体。因为虚拟机也是以进程形式运行,所以这个属性也成为虚拟机运行机制的一部分。

    为了使虚拟机能够在KVM中平稳运行,每一个虚拟CPU都被调度程序当做一个线程来处理。为了进行有效的调度,内核启用了一种新的操作模式——“访客模式”。一个虚拟访客不能直接对Linux内核进行系统调用(系统模式下的进程则可以),但它却能够运用管理调用与管理程序进行对话。这种新的操作模式充分利用了Linux内核的新功能,如调度、计数、内核同页合并(KSM)。

    linux/unix基础知识

    自动草稿

    一、吃透材料,阅读之前要有问题意识,要把乱七八糟的东西看成是一个整体。不论考试题目有什么要求,总是离不开三个问题,原因,…

    一、吃透材料,阅读之前要有问题意识,要把乱七八糟的东西看成是一个整体。不论考试题目有什么要求,总是离不开三个问题,原因,现状,对策。
    分析材料的时候要问自己五个问题:
    1.材料反映的主要问题是什么,
    2.材料与材料之间的逻辑关系如何
    3.问题的表现是什么,
    4.问题的根源是什么,
    5.对策是什么。

    linux/unix基础知识

    外企面试最常见的36个英文问题(附答案)

    对外企的英文面试应该按照以下步骤来进行准备:
    (1) 预测问题。这个环节不但能帮助你克服听力困难, 而且能缓解你在面试时候的紧张情绪。想象一下, 如果总是Pardon, Excuse me, 你怎么可能镇定自若?
    (2) 书写答案。英语8级的牛人也会在英文面试时出现逻辑不清的情况, 因为流利和井井有条绝对不是同义词。笔者的亲身体会是, 越是英语流利的牛人, 越容易在面试的时候废话连篇, 逻辑混乱。
    (3) 背诵答案。背诵三遍以内是结巴, 背诵十遍以内是流利的背诵, 而背诵二三十遍以上就不再是背诵, 而是滔滔不绝的自由表达!

    (4) 若有所思。面试的时候, 在流利做答之前, 别忘了做思索状, 再加上个well, let me see……
    衡量一个回答是否精彩, 只有一个标准: 这个回答中, 体现了申请人的什么特征?这些特征是优点还是缺点?如果是优点, 是否刚好适合所申请职位的优点?

    linux/unix基础知识

    Xen 初学者指南—-转载

    原文地址:http://www.linuxsir.org/main/?q=node/188

    0、本文约定;

    虚拟平台是指能支持运行Xen的真实安装的操作系统;
    虚拟操作系统:是指在虚拟平台上安装和虚拟运行的操作系统;

    比如我在Slackware 中安装了Xen,那Slackware就是虚拟平台,通过虚拟平台就可以虚拟其它操作系统了;比如通过Slackware来虚拟Debian、Fedora … …

    linux/unix基础知识

    vmlinuz,initrd和system.map简介

    vmlinuz是可引导的、压缩的内核。“vm”代表 “Virtual Memory”。Linux 支持虚拟内存,不像老的操作系统比如DOS有640KB内存的限制。Linux能够使用硬盘空间作为虚拟内存,因此得名“vm”。vmlinuz是可执行的Linux内核,它位于/boot/vmlinuz,它一般是一个软链接。

    initrd是linux在系统引导过程中使用的一个临时的根文件系统,用来支持两阶段的引导过程。

      直白一点,initrd就是一个带有根文件系统的虚拟RAM盘,里面包含了根目录‘/’,以及其他的目录,比如:bin,dev,proc,sbin,sys等linux启动时必须的目录,以及在bin目录下加入了一下必须的可执行命令。