当前位置:  操作系统/服务器>linux
本页文章导读:
    ▪linux下的磁盘定额配置      介绍: 磁盘定额(quota)是系统管理员用来监控和限制用户或组对磁盘的使用的工具。Quota可以从两方面限制:其一,限制用户或组可以拥有的inode数 (文件数);其二,限制分配给用户或组.........
    ▪卸载linux的文件系统的方法      卸载linux的文件系统的方法,供大家学习参考。 卸载文件系统相关命令:umount 辅助命令:fuser kill lsof 命令介绍: umount 设备点名称|挂载目录 umount选项解释 -V 打印版本信息并且推出。 [root@no.........
    ▪linux读取符号链接本身的内容的方法      对符号链接本身充满好奇,想查看下符号链接本身存储的内容,自个儿用C语言写了一个,分享给大家。 在linux下,用vim,less,cat等读取文件内容的命令来查看符号链接内容,最终都会被导向.........

[1]linux下的磁盘定额配置
    来源: 互联网  发布时间: 2013-12-24

介绍:
磁盘定额(quota)是系统管理员用来监控和限制用户或组对磁盘的使用的工具。Quota可以从两方面限制:其一,限制用户或组可以拥有的inode数 (文件数);其二,限制分配给用户或组的磁盘块的数目(以千字节为单位的磁盘空间)。通过使用quota,系统管理员可以限制用户无节制地使用磁盘空间。 Quota程序是针对每个用户和每个文件系统的,所以每个文件系统都要单独设置。

编译支持quota的内核
首先,你要确定你的Linux内核是支持quota的。在2.2.14的版本的内核中,在编译的时候必须回答下面的问题为“y”。
Filesystems
Quota support (CONFIG_QUOTA) [N/y/?] Y

修改“/etc/fstab”文件
“/etc/fstab”文件包含Linux系统中安装上的各种各样文件系统的信息。在使用quota之前,必须现在“fstab”中设置一下使其生效。 因为对每一个文件系统都要单独设置quota,而且在“fstab”文件中,每一个文件系统单独用一行表示,所以为了支持quota必须在“fstab” 的每一行都单独设置。根据你的需要,可以单独为用户、组或组和用户设置quota。在下面的例子中,我们假定“/home”目录在“/dev/sda6” 设备上,有三种可能的情况。

第一种可能的情况:
在一个特定的文件系统上设置用户quota,编辑你的“fstab”文件(vi /etc/fstab),在“defaults”或其它为文件系统做的设置之后加上“usrquota”。
例如:
/dev/sda6 /home ext2 defaults 1 2 (as an example: the word “defaults”)
/dev/sda6 /home ext2 nosuid,nodev 1 2 (as an example: any other options you have set)
改为:
/dev/sda6 /home ext2 defaults,usrquota 1 2
/dev/sda6 /home ext2 nosuid,nodev,usrquota 1 2

第二种可能的情况:
在文件系统上设置组quota,编辑你的“fstab”文件(vi /etc/fstab),在“defaults”或其它为文件系统做的设置之后加上“grpquota”
例如:
/dev/sda6 /home ext2 defaults 1 2 (as an example: the word “defaults”)
/dev/sda6 /home ext2 nosuid,nodev 1 2 (as an example: any other options you have set)
改为:
/dev/sda6 /home ext2 defaults,grpquota 1 2
/dev/sda6 /home ext2 nosuid,nodev,grpquota 1 2

第三种可能情况:
在文件系统上同时设置用户和组quota,编辑“fstab”文件(vi /etc/fstab),在“defaults”或其它为文件系统做的设置之后加上“usrquota, grpquota”。
例如:
/dev/sda6 /home ext2 defaults 1 2 (as an example: the word “defaults”)
/dev/sda6 /home ext2 nosuid,nodev 1 2 (as an example: any other options you have set)
改为:
/dev/sda6 /home ext2 defaults,usrquota,grpquota 1 2
/dev/sda6 /home ext2 nosuid,nodev,usrquota,grpquota 1 2

创建“quota.user”和“quota.group”文件
在修改“/etc/fstab”文件之后,为了在文件系统上建立quota,在文件系统的根目录下(在我们的例子中为“/home”)必须有一个 “root”拥有所有权的文件:如果设置用户quota,必须创建“quota.user”;如果设置组quota,必须创建 “quota.group”;如果想同时设置用户和组quota,这两个文件都要创建。
第一步
在你想设置quota的那个分区的根目录,以“root”身份创建“quota.usr”或“quota.group”文件:
 

代码如下:
[root@deep /]# touch /home/quota.user
[root@deep /]# touch /home/quota.group
[root@deep /]# chmod 600 /home/quota.user
[root@deep /]# chmod 600 /home/quota.group


“touch”命令在“/home”目录下创建空的文件。。“chmod”命令为这些文件设置只有“root”用户可读写的权限。
注意:这两个quota文件,“quota.user”和“quota.group”,的所有者必须为“root”,“root”用户有读写的权限。


    
[2]卸载linux的文件系统的方法
    来源: 互联网  发布时间: 2013-12-24

卸载linux的文件系统的方法,供大家学习参考。

卸载文件系统相关命令:umount
辅助命令:fuser kill lsof

命令介绍:
umount 设备点名称|挂载目录

umount选项解释

-V 打印版本信息并且推出。

[root@node5 ~]# umount -V
 umount (util-linux 2.13-pre7)
[root@node5 ~]# rpm -qa|grep util-linux
 util-linux-2.13-0.50.el5
这里显示umount命令属于util-linux 2.13-pre7的rpm包,然后我们使用rpm查询命令可以找到系统具体安装的rpm包。

-h 打印简要帮助信息。

[root@node5 ~]# umount -h
 Usage: umount [-hV] umount -a [-f] [-r] [-n] [-v] [-t vfstypes] [-O opts]
  umount [-f] [-r] [-n] [-v] special | node...

-v 打印详细信息。

如果我们使用umount -个目录或者设备点,如果成功的话,不带-v选项,将不会打印信息。
[root@node5 ~]# umount -v /dev/mapper/vg01-share
/dev/mapper/vg01-share umounted

-n umount的时候不会更新/etc/mtab文件
-r 如果umount失败,重新挂载文件系统为只读模式
-a /etc/mtab中记录的文件系统全部卸载
-t 指定文件系统类型。如ext3,fat32,iso9600等
-f 强制卸载。in case of an unreachable NFS system
-l 属于一个延迟卸载,等文件系统所有资源释放后在卸载。

umount的绝对路径一般是/bin/umount,权限为
-rwsr-xr-x 1 root root 38936 Nov 25  2008 /bin/umount
    也就是所有用户都可以执行这条命令,但是一般不带-n选项,一般用户是无法执行成功的,因为/etc/mtab文件的权限位只有root用户可写。
    umount 后面可以指定设备文件名也可以指定挂载点。umount使用挂载点和设备文件名是不同的,当使用挂载点时,也就是卸载当前挂载点的文件系统,当使用设备文件名时,也就是卸载当前设备所对应的文件系统全部卸载。也就是说一个设备点可以被多次挂载,一个挂载点只对应一个设备。
fuser 识别进程使用的文件或者套接字
fuser显示进程所使用文件系统或者文件的进程号加上使用的方式(字母标识)。各字母的具体含义如下:
c 当前目录
e 执行目录
f 打开文件
F 打开文件用来写
r 根目录
m 映射文件或者共享库

fuser 返回值。如果没有进程在使用该文件或者文件系统返回非0,如果有进程在使用则返回0
fuser 打印输出。 pid号打印到标准输出,其他的打印到标准错误。
主要的命令行选项:
-k 发送SIGILL信号给进程,也就是强制杀掉使用文件或者文件系统的进程,等同于kill -9
-i 交互模式
-l 显示可以发送的信号

[root@node5 ~]# fuser -l
HUP INT QUIT ILL TRAP ABRT IOT BUS FPE KILL USR1 SEGV USR2 PIPE ALRM TERM STKFLT CHLD CONT STOP TSTP TTIN TTOU URG XCPU XFSZ VTALRM PROF WINCH IO PWR SYS UNUSED
这些信号的标准模式为SIG+显示的名字
-m 显示使用文件或者文件系统的进程
-signal 发送信号给进程
-4|-6 使用IPV4或者IPV6

实例1:
显示使用/share(为一挂载点)的进程
[root@ser221 ~]# fuser -m /share 
/share:              11755c 11863c
详细模式:
[root@ser221 ~]# fuser -mv /share
         USER        PID ACCESS COMMAND
/share:  mysql     11755 F.c.. mysqld
         com       11863 ..c.. ComServer

实例2:
查看使用3306端口的进程:
[root@ser221 ~]# fuser -n tcp 3306            
3306/tcp:            11755

[root@ser221 ~]# fuser -nv tcp 3306
USER        PID ACCESS COMMAND
3306/tcp:   mysql     11755 F.... mysqld

lsof暂时没有使用,这个命令同样可以获得文件系统的使用情况。
umount filesystem最经常碰到的问题就是‘device is busy’,在这种情况下,结合使用fuser可以看到哪些进程在使用挂载点,然后停掉进程,即可umount成功。


    
[3]linux读取符号链接本身的内容的方法
    来源: 互联网  发布时间: 2013-12-24

对符号链接本身充满好奇,想查看下符号链接本身存储的内容,自个儿用C语言写了一个,分享给大家。
在linux下,用vim,less,cat等读取文件内容的命令来查看符号链接内容,最终都会被导向到实际链接的文件。

代码如下:
#include <unistd.h>
#include <stdio.h>
 
int main(void)
{
  //符号链接的路径
  char sln[] = "./test";
  char buf[1024];
  ssize_t len;
 
  if ((len = readlink(sln, buf, 1024 - 1)) != -1) {
      buf[len] = '\0';
  }
 
  printf("%s\n", buf);
  return 0;
 }

编译执行这个程序,最终查看到符号链接本身存储内容就是链接文件的路径。
例如:/home/test链接到/home/test.txt,符号链接/home/test存储的内容就是:”/home/test.txt“。

附-作者修改后的最新文章内容:2013-1-6
#------------------------------------------
在linux下,用vim,less,cat等读取文件内容的命令来查看符号链接内容,最终都会被导向到实际链接的文件。笔者对符号链接本身充满好奇,想查看下符号链接本身存储的内容,网上搜索了很久,没有找到相关的方法,于是自个儿用C语言写了一个,分享给大家。

代码如下:

#include
#include

int main(void)
{
    //符号链接的路径
    char sln[] = "./test";
    char buf[1024];
    ssize_t len;

    if ((len = readlink(sln, buf, 1024 - 1)) != -1) {
        buf[len] = '\0';
    }

    printf("%s\n", buf);
    return 0;
}

在笔者电脑上编译执行这个程序,最终查看到符号链接本身存储内容就是链接文件的路径。例如:/home/test链接到/home/test.txt,符号链接/home/test存储的内容就是”/home/test.txt“。

补充说明

后来笔者在工作中,偶然发现readlink这个命令也可以读取符号链接本身的内容:

代码如下:
readlink -f test

原文地址:http://www.01happy.com/linux-symbolic-link-contents/


    
最新技术文章:
▪linux系统中的列出敏感用户的脚本代码
▪a10 config backup for aXAPI
▪一键备份gitolite服务器的Shell脚本
▪nagios 分发文件实现代码
▪阿里云云服务器Linux系统更新yum源Shell脚本
▪一个监控LINUX目录和文件变化的Shell脚本分享
▪Linux下实现SSH免密码登录和实现秘钥的管理、...
▪Shell正则表达式之grep、sed、awk实操笔记
▪3个备份系统文件并邮件发送的Shell脚本分享
▪CentOS 6.3下给PHP添加mssql扩展模块教程
▪监控网站是否可以正常打开的Shell脚本分享
▪shell脚本编程之if语句学习笔记
▪shell脚本编程之循环语句学习笔记
▪shell脚本编程之case语句学习笔记
▪Shell脚本实现的阳历转农历代码分享
▪Shell脚本实现复制文件到多台服务器的代码分...
▪Shell脚本实现批量下载网络图片代码分享
▪Shell脚本实现检测文件是否被修改过代码分享
▪Shell脚本数组用法小结
▪Shell脚本批量重命名文件后缀的3种实现
▪C语言实现的ls命令源码分享
▪Linux下查找后门程序 CentOS 查后门程序的shell脚...
▪Shell 函数参数
▪linux shell 自定义函数方法(定义、返回值、变...
▪Shell实现判断进程是否存在并重新启动脚本分...
▪Shell脚本break和continue命令简明教程
▪Shell脚本函数定义和函数参数
▪让代码整洁、过程清晰的BASH Shell编程技巧
▪Linux下查找后门程序 CentOS 查后门程序的shell脚... iis7站长之家
▪awk中RS、ORS、FS、OFS的区别和联系小结
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3