367+589心腹表示什么意思么

格式:doc&&&
贡献者:Wolfgang951
上传时间: 14:09
此文档归属以下专题
暂无相关专题
-------------
新增文件夹...
(多个标签用逗号分隔)
&第9讲 棉花国际市场和外贸表现
分享到:&&
下载本文档需要登录,并付出相应积分。()
文件大小:3.06MB
所需积分:& 10
&2006-, All rights reserved.OS&+&Linux&File&fuser&nfs&/&ntfs&/&xfs&/&
linux下文件和目录的颜色代表的含义
/blog/306787
蓝色&表示目录;绿色表示可执行文件;
红色&表示压缩文件;
浅蓝&色表示链接文件;
灰色&表示其它文件;
红色闪烁&表示链接的文件有问题了;
黄色&是设备文件 ,
包括block, char, fifo。
[root@nginxpre2 ~]# dircolors -p
用dircolors
-p看到缺省的颜色设置,包括各种颜色和“粗体”,下划线,闪烁等定义
[root@nginxpre2 ~]# dircolors --help
Usage: dircolors [OPTION]... [FILE]
Output commands to set the LS_COLORS environment variable.
Determine format of output:
& -b, --sh,
--bourne-shell&&&
output Bourne shell code to set LS_COLORS
& -c, --csh,
--c-shell&&&&&&&
output C shell code to set LS_COLORS
--print-database&&&&&&&
output defaults
--help&&&&
display this help and exit
--version& output version information and
If FILE is specified, read it to determine which colors to use for
file types and extensions.& Otherwise, a
precompiled database is used.
For details on the format of these files, run `dircolors
--print-database'.
Report bugs to .
Unix&文件&系统
umask 命令
http://www.ixpub.net/thread--1.html
A 什么是umask?&
当我们登录系统之后创建一个文件总是有一个默认权限的,那么这个权限是怎么来的呢?这就是umask干的事情。umask设置了用户创建文件的默认
权限,它与chmod的效果刚好相反,umask设置的是权限“补码”,而chmod设置的是文件权限码。一般在/etc/profile、$
[HOME]/.bash_profile或$[HOME]/.profile中设置umask值。
你的系统管理员必须要为你设置一个合理的
umask值,以确保你创建的文件具有所希望的缺省权限,防止其他非同组用户对你的文件具有写权限。在已经登录之后,可以按照个人的偏好使用umask命
令来改变文件创建的缺省权限。相应的改变直到退出该shell或使用另外的umask命令之前一直有效。一般来说,umask命令是在/etc
/profile文件中设置的,每个用户在登录时都会引用这个文件,所以如果希望改变所有用户的umask,可以在该文件中加入相应的条目。如果希望永久
性地设置自己的umask值,那么就把它放在自己$HOME目录下的.profile或.bash_profile文件中。
B 如何计算umask值&
命令允许你设定文件创建时的缺省模式,对应每一类用户(文件属主、同组用户、其他用户)存在一个相应的umask值中的数字。对于文件来说,这一数字的最
大值分别是6。系统不允许你在创建一个文本文件时就赋予它执行权限,必须在创建后用chmod命令增加这一权限。目录则允许设置执行权限,这样针对目录来
说,umask中各个数字最大可以到7。
该命令的一般形式为:
其中nnn为umask置000-777。
让我们来看一些例子。
计算出你的umask值:
可以有几种计算umask值的方法,通过设置umask值,可以为新创建的文件和目录设置缺省权限。下表列出了与权限位相对应的umask值。
在计算umask值时,可以针对各类用户分别在这张表中按照所需要的文件/目录创建缺省权限查找对应的umask值。
例如,umask值002 所对应的文件和目录创建缺省权限分别为6 6 4和7 7 5。
还有另外一种计算umask值的方法。我们只要记住umask是从权限中“拿走”相应的位即可。
umask值与权限
例如,对于umask值0 0 2,相应的文件和目录缺省创建权限是什么呢?
第一步,我们首先写下具有全部权限的模式,即777 (所有用户都具有读、写和执行权限)。
第二步,在下面一行按照umask值写下相应的位,在本例中是0 0 2。
第三步,在接下来的一行中记下上面两行中没有匹配的位。这就是目录的缺省创建权限。
稍加练习就能够记住这种方法。
第四步,对于文件来说,在创建时不能具有文件权限,只要拿掉相应的执行权限比特即可。
这就是上面的例子,& &其中u m a s k值为0 0
1) 文件的最大权限& &&
&&&rwx rwx
2) umask值为0 0 2&
&&&--- ---
3) 目录权限& &&
&&&rwx rwx
这就是目录创建缺省权限
4) 文件权限& &&
&&&rw- rw-
这就是文件创建缺省权限
下面是另外一个例子,假设这次u m a s k值为0 2 2:
1) 文件的最大权限& &&
&&&rwx rwx
2 ) u m a s k值为0 2 2& &--- -w-
3) 目录权限& &&
&&&rwx r-x
这就是目录创建缺省权限
4) 文件权限& &&
&&&rw- r--
这就是文件创建缺省权限C
常用的umask值下表列出了一些umask值及它们所对应的目录和文件权限。
常用的umask值及对应的文件和目录权限
umask 值& &&
umask命令如果想知道当前的umask 值,可以使用umask命令:
如果想要改变umask值,只要使用umask命令设置一个新的值即可:
$ umask 002
确认一下系统是否已经接受了新的u m a s k值:
$touch testfile
$ls -l testfile
& &rw- rw-
在使用umask命令之前一定要弄清楚到底希望具有什么样的文件/目录创建缺省权限。否则可能会得到一些非常奇怪的结果;例如,如果将umask值设置为6
0 0,那么所创建的文件/目录的缺省权限就是0 6 6!
RedHat&挂载&NFS分区!
一个cron.daily引发的nfs卸载问题
http://www.36ji.net/article/.html
more /var/spool/anacron/cron.daily
Linux / Redhat df -h 死机
, df -h 卡住不动了,
解决:&可能是NFS的文件系统没有挂载上。
[root@b2ctest1 ~]# df -h
文件系统&&&&&&&&&&&&&
容量& 已用 可用 已用% 挂载点
/dev/mapper/VolGroup00-LogVol00
&&&&&&&&&&&&&&&&&&&&&
284G& 129G&
140G& 48% /
/dev/hda1&&&&&&&&&&&&&
13M&& 82M& 13%
tmpfs&&&&&&&&&&&&&&&&
0& 2.0G&& 0%
[root@b2ctest1 ~]# ps wwwaux
执行df -hP停住不动 , Linux / Redhat df -h 死机 , df -h 卡住不动了
mount 查看有一个远程nfs
umount /mnt&&无法卸载
&/mnt&&无进程使用
service portmap stop
umount /mnt 成功
ps aux&&进程正常,刚才那些进程都没有了
RPC Error:Program not
registered问题的解决办法
http://stevenz./_d.html
[root@b2ctest1 ~]# mount 192.168.100.186:/c/backup
/mnt/tivoli
mount: mount to NFS server '192.168.100.186' failed: RPC Error:
Program not registered.
服务器IP:172.0.0.1,主机名:p470-1, 通过NFS共享/disk1目录
在客户端使用 mount -t nfs p470-1:/disk1 /disk1
时出现"mount: mount to NFS server 'p470-1' failed: RPC Error: Program
not registered."错误提示。
出错原因:p470-1由于网络原因nfs服务被中断,重新开启p470-1的nfs服务,
然后在客户端重新mount disk1即可 , service nfs restart 或 /etc/rc.d/init.d/nfs
Linux umount : device is busy
/topic/611267
Linux 下的磁盘分区通过挂载(mount)的方式连到一个目录下, 打开此目录就可以看到该分区的内容,
与挂载相反的操作是umount, 它将磁盘分区与目录的关联关系解除.&
最近在umount时报下列外, 如:
#umount&/sd03&&
Umount:&/sd03&:&device&is&busy.&&&
Java代码&&
#umount&/sd03&&
Umount:&/sd03&:&device&is&busy.&&&
这说明还有某个程序正在使用此目录, 为了保证程序的运行, 默认情况下umount不能卸载.
但是umount没说是哪个程序正在使用.&&
在Linux里有一个命令 fuser, 可以通过man fuser 看到详细的介绍:&
Fuser&-&identify&processes&using&files&or&sockets&&
Java代码&&
Fuser&-&identify&processes&using&files&or&sockets&&
#fuser &m 目录. 会显示使用目录的进程, 那么在umount之前, 可以先把这些进程先Kill.&
另外就是使用umount &l 选项. Man umount&
-l&&&&&Lazy&&unmount.&Detach&the&filesystem&from&the&filesystem&hierarchy&now,&and&cleanup&all&references&to&the&filesystem&as&soon&as&it&is&not&busy&any-more.&&(Requires&kernel&2.4&.&11&&or&later.)&&
Java代码&&
-l&&&&&Lazy&&unmount.&Detach&the&filesystem&from&the&filesystem&hierarchy&now,&and&cleanup&all&references&to&the&filesystem&as&soon&as&it&is&not&busy&any-more.&&(Requires&kernel&2.4.11&or&later.)&&
当引用不繁忙时, 直接卸载与之目录相关系的文件系统.& 推荐后者.
挂载NTFS分区!
/blog/306789
1.查看RedHat 系统内核版本
[root@localhost ~]# uname -r -p
2.6.18-92.el5 i686
2.根据当前版本到http://www.linux-ntfs.org/去下载相应模块包
我下的是:kernel-module-ntfs-2.6.18-92.el5-2.1.27-0.rr.10.11.i686.rpm
[root@localhost Desktop]# rpm -ivh
kernel-module-ntfs-2.6.18-92.el5-2.1.27-0.rr.10.11.i686.rpm&
Preparing...&&&&&&&&&&&&&&&
########################################### [100%]
1:kernel-module-ntfs-2.6.###########################################
4.挂载模块:
[root@localhost Desktop]# /sbin/modprobe ntfs
5.查看NTFS模块是否被加载
[root@localhost Desktop]# dmesg |grep NTFS
NTFS driver 2.1.27 [Flags: R/W MODULE].
6.挂载NTFS分区
[root@localhost Desktop]#mount -t ntfs /dev/hda5 /mnt/ntfsD
[root@localhost Desktop]#mount
.........................................
/dev/sda1 on /media/USBHDD-BOOT type vfat
(rw,noexec,nosuid,nodev,shortname=winnt,uid=500)
/dev/hda5 on /mnt/ntfsD type ntfs (rw)
8.但是这样只能读,怎样才能写呢?
学习中..................
linux file recover
误删文件不用怕 grep命令帮你恢复
作为长期的电脑使用者,肯定会有误删文件的经历,在 Mac OS X 和 Windows 上删除的文件都会默认进 “回收站”。在
Linux 上如果事先没有用别名(alias)修改默认的 rm 功能,rm
后文件就会丢失,幸运的是,在一般的删除文件操作中,Linux 并不会立即清空存储该文件的 block 内容,而只会释放该文件所占用的
inode 和 data block,Linux 上 rm 的过程其实就是将 inode bitmap 和 data block
bitmap 中的相应标识设为空闲状态的过程,并不涉及到真正的数据,这也是为什么在 Linux
下删除大文件这么快速的原因,因为大文件所占的磁盘根本就没有清空。所以,如果我们能找到文件对应的 inode,由此查到相应的 data
block,就可能从磁盘上把已删除的文件恢复出来,很多文件/磁盘恢复工具都是这么做的。
一般来说二进制文件、库文件等删除后都可以从其他 Linux
拷贝恢复,不是很要紧,如果自己辛苦写的脚本或者配置文件误删了就杯具了。误删这种蠢事经常在 VPSee
身上发生,最近一次是在今年年初的时候,开了 screen 多次 ssh
到不同服务器上,在前后切换的过程中删除了一个很肯定的配置文件,后来发现删的文件是对的,可惜在一台错误的服务器上,本来应该在 A
服务器上删除 file.txt 结果在 B 服务器上删除了 file.txt,多个 screen 和 ssh
把自己搞晕了,而且主机名没有安排好,多台机器都是用的 localhost,不利于识别当时的环境。如果使用 Linux
的时候不幸误删了一个文本文件怎么办呢?
先临时建一个文本文件 vpsee.log 做测试,然后删除这个文件:
$ echo "important log file " & vpsee.log
$ cat vpsee.log
important log file
$ rm vpsee.log
如果能记住刚才删除文件中的某个关键字的话可以用 grep 搜索整个 /dev/sda1,-a 标志位的意思是把 /dev/sda1
这个分区看成是文本形式的(分区本身是二进制形式的),-B 10 -A 100
的意思是如果找到关键字就打印出其前10行和后100行的内容:
# grep -a -B 10 -A 100 '' /dev/sda1 & tmp.txt
在一堆 @ 之间可以找到我们刚才删除的内容:
$ vi tmp.txt
@$^@^@^@^@^@^@^@^@^@^@^@^A^@^@^@^@^@^@^@?^@^@^@^A^@^@^@^@^@^@^@^@^@^@^@&^K^@^@^@
^@^@^@^@^@^@^@^@^@^@^@^A^@^@^@^@^@^@^@^Q^@^@^@^C^@^@^@^@^@^@^@^@^@^@^@&^K^@^@&^@
^@^@important log file
当然,如果误删了二进制、doc、png/jpg/gif 之类的文件,可以用一些第三方 ext2/ext3
文件恢复工具帮助恢复文件,比如 TestDisk, PhotoRec 等。
实例:Linux
EXT3文件系统下成功恢复误删的文件[原创]&张宴
/articles/435
/linux_ext3_undelete/
http://www.xs4all.nl/~carlo17/howto/undelete_ext3.html
http://blog.chinaunix.net/u/30312/showart.php?id=1814218
recover deleted files on an ext3 file system&
  环境:CentOS 5.3 x86_64下,/dev/sdb1为数据分区/data0,EXT3文件系统。
  前因:误删了/data0/tcsql/cankao/phpcws-1.5.0/httpcws.cpp文件。由于忘了备份httpcws.cpp文件,重新开发工作量较大,因此只有恢复该文件一条路可走。
  debugfs命令针对EXT2分区还行,但对EXT3分区就帮不上忙了。偶然发现的一款开源软件,解决了我的大忙。该软件下载网址为:
  1、先安装ext3grep软件:
tar zxvf ext3grep-0.10.1.tar.gz
cd ext3grep-0.10.1
./configure
make install
  2、umount /data0分区:
umount /data0
  如果提示busy,先kill正在使用这个目录的进程,再umount:
fuser -k /data0
umount /data0
  3、查询所有Inode,(执行需要几分钟~十多分钟):
ext3grep /dev/sdb1 --ls --inode 2
  4、逐级查找Inode,看是否能找到httpcws.cpp文件(此步骤也可省略):
  5、恢复/data0/tcsql/cankao/phpcws-1.5.0/httpcws.cpp文件:
ext3grep /dev/sdb1 --restore-file
tcsql/cankao/phpcws-1.5.0/httpcws.cpp
  如果提示以下信息,则表示恢复成功:
  Restoring tcsql/cankao/phpcws-1.5.0/httpcws.cpp
  这时,执行ext3grep命令的当前目录下将会自动生成一个名为RESTORED_FILES&的文件夹,文件夹下的tcsql/cankao/phpcws-1.5.0/httpcws.cpp即为恢复的文件。查看了一下,和被删除前的内容一样,大功告成。
  6、重新mount /data0分区:
mount /dev/sdb1 /data0
参考资料:
Tags:&&,&&,&&,&&,&&,&&,&&,&
Ext4,Ext3的特点和区别&&
//&Ext2 v.s.
Ext3 v.s. Ext4 性能比拼
/deathshadow/blog/item/abe01ade267fb564.html
/blog/383986
&&&&&&&&&&&
Linux kernel 自 2.6.28 开始正式支持新的文件系统 Ext4。 Ext4 是 Ext3 的改进版,修改了 Ext3
中部分重要的数据结构,而不仅仅像 Ext3 对 Ext2 那样,只是增加了一个日志功能而已。Ext4
可以提供更佳的性能和可靠性,还有更为丰富的功能:
1. 与 Ext3
兼容。&执行若干条命令,就能从 Ext3
在线迁移到 Ext4,而无须重新格式化磁盘或重新安装系统。原有 Ext3 数据结构照样保留,Ext4
作用于新数据,当然,整个文件系统因此也就获得了 Ext4 所支持的更大容量。
更大的文件系统和更大的文件。&较之 Ext3 目前所支持的最大
16TB 文件系统和最大 2TB 文件,Ext4 分别支持 1EB(1,048,576TB, 1EB=1024PB,
1PB=1024TB)的文件系统,以及 16TB 的文件。
无限数量的子目录。&Ext3 目前只支持 32,000
个子目录,而 Ext4 支持无限数量的子目录。
Extents。&Ext3
采用间接块映射,当操作大文件时,效率极其低下。比如一个 100MB 大小的文件,在 Ext3 中要建立 25,600
个数据块(每个数据块大小为 4KB)的映射表。而 Ext4 引入了现代文件系统中流行的 extents 概念,每个 extent
为一组连续的数据块,上述文件则表示为“该文件数据保存在接下来的 25,600 个数据块中”,提高了不少效率。
多块分配。&当 写入数据到 Ext3
文件系统中时,Ext3 的数据块分配器每次只能分配一个 4KB 的块,写一个 100MB 文件就要调用 25,600
次数据块分配器,而 Ext4 的多块分配器“multiblock allocator”(mballoc)
支持一次调用分配多个数据块。
延迟分配。&Ext3
的数据块分配策略是尽快分配,而 Ext4 和其它现代文件操作系统的策略是尽可能地延迟分配,直到文件在 cache
中写完才开始分配数据块并写入磁盘,这样就能优化整个文件的数据块分配,与前两种特性搭配起来可以显著提升性能。
fsck。&以前执行 fsck
第一步就会很慢,因为它要检查所有的 inode,现在 Ext4 给每个组的 inode 表中都添加了一份未使用 inode
的列表,今后 fsck Ext4 文件系统就可以跳过它们而只去检查那些在用的 inode 了。
日志校验。&日志是最常用的部分,也极易导致磁盘硬件故障,而从损坏的日志中恢复数据会导致更多的数据损坏。Ext4
的日志校验功能可以很方便地判断日志数据是否损坏,而且它将 Ext3
的两阶段日志机制合并成一个阶段,在增加安全性的同时提高了性能。
9. “无日志”(No
Journaling)模式。&日志总归有一些开销,Ext4
允许关闭日志,以便某些有特殊需求的用户可以借此提升性能。
在线碎片整理。&尽管延迟分配、多块分配和
extents 能有效减少文件系统碎片,但碎片还是不可避免会产生。Ext4 支持在线碎片整理,并将提供 e4defrag
工具进行个别文件或整个文件系统的碎片整理。
相关特性。&Ext4 支持更大的
inode,较之 Ext3 默认的 inode 大小 128 字节,Ext4 为了在 inode 中容纳更多的扩展属性(如纳秒时间戳或
inode 版本),默认 inode 大小为 256 字节。Ext4 还支持快速扩展属性(fast extended
attributes)和 inode 保留(inodes reservation)。
持久预分配(Persistent preallocation)。&P2P
软件为了保证下载文件有足够的空间存放,常常会预先创建一个与所下载文件大小相同的空文件,以免未来的数小时或数天之内磁盘空间不足导致下载失败。
Ext4 在文件系统层面实现了持久预分配并提供相应的 API(libc 中的
posix_fallocate()),比应用软件自己实现更有效率。
13. 默认启用
barrier。&磁
盘上配有内部缓存,以便重新调整批量数据的写操作顺序,优化写入性能,因此文件系统必须在日志数据写入磁盘之后才能写 commit 记录,若
commit 记录写入在先,而日志有可能损坏,那么就会影响数据完整性。Ext4 默认启用 barrier,只有当 barrier
之前的数据全部写入磁盘,才能写 barrier 之后的数据。(可通过 "mount -o barrier=0"
命令禁用该特性。)
Ext4 随 Linux kernel 2.6.28 正式发布已有数周,一直苦于找不到测试用的磁盘,正巧年前 Intel 送来几块
SSD 测试样品,这两天就顺带把 SSD 也测了。测试所使用的 Linux 内核版本为 2.6.28.2,测试工具为 IOzone
3.318。&测试命令为:
time /opt/iozone/bin/iozone -a -s 4G -q 256 -y 4
&|/root/ext4-iozone-stdout.txt
上述命令的说明如下:
File size set to 4194304 KB
Using Maximum Record Size 256 KB
Using Minimum Record Size 4 KB
Command line used: /opt/iozone/bin/iozone -a -s 4G -q 256 -y
Output is in Kbytes/sec
Time Resolution = 0.000001 seconds.
Processor cache size set to 1024 Kbytes.
Processor cache line size set to 32 bytes.
File stride size set to 17 * record size.
测试结果除了表明 Intel SSD 的读写速度快得令人咋舌之外,还可以说明 Ext4 的各方面性能都超过了上一代
Ext3,甚至在大多数情况下,比没有日志功能的 Ext2 还要快出不少:
real 28m12.718s
user 0m10.725s
sys 5m8.265s
real 27m42.449s
user 0m11.529s
sys 7m17.049s
real 27m3.485s
user 0m10.847s
sys 6m9.578s
文件系统&新特性
http://kernelnewbies.org/Ext4
/blog/734107
http://linux.chinaunix.net/bbs/thread--1.html
Ext4 is part of the&&kernel, read the
previous link to know more details about that release.
RedHat Linux file
/blog/604980
fuser 可以显示出当前哪个程序在使用磁盘上的某个文件、挂载点、甚至网络端口,并给出程序进程的详细信息.&
fuser显示使用指定文件或者文件系统的进程ID.默认情况下每个文件名后面跟一个字母表示访问类型。&
访问类型如下:&
c 代表当前目录&
e 可执行的被运行&
f 打开的文件。默认不显示。&
F 打开的文件,用于写操作。默认不显示。&
r 根目录。&
m 映射文件或者共享库。&
当指定的文件没有被访问,或者出现错误的时候,fuser会返回非零。&
为了查看使用tcp和udp套接字的进程,需要-n选项并指定名称空间。默认IpV4和IpV6都会显示。套接字可以是本地的或者是远程的端口,和远程的地址。所有的域是可选的,但是其前面的','必须存在。如下:&
[lcl_port][,[rmt_host][,[rmt_port]]]&
对于ip地址和port,名称和数字表示都可以使用。&
fuser只把PID输出到标准输出,其他的都输出到标准错误输出。&
一些常用选项:&
-a 显示所有命令行中指定的文件,默认情况下被访问的文件才会被显示。&
-c 和-m一样,用于POSIX兼容。&
-k 杀掉访问文件的进程。如果没有指定-signal就会发送SIGKILL信号。&
-i 杀掉进程之前询问用户,如果没有-k这个选项会被忽略。&
-l 列出所有已知的信号名称。&
指定一个挂载文件系统上的文件或者被挂载的块设备(名称name)。这样所有访问这个文件或者文件系统的进程都会被列出来。如果指定的是一个目录会自动转换成"name/",并使用所有挂载在那个目录下面的文件系统。&
指定一个不同的命名空间(space).这里支持不同的空间文件(文件名,此处默认)、tcp(本地tcp端口)、udp(本地udp端口)。对于端口,
可以指定端口号或者名称,如果不会引起歧义那么可以使用简单表示的形式,例如:name/space
(即形如:80/tcp之类的表示)。&
-s 静默模式,这时候-u,-v会被忽略。-a不能和-s一起使用。&
使用指定的信号,而不是用SIGKILL来杀掉进程。可以通过名称或者号码来表示信号(例如-HUP,-1),这个选项要和-k一起使用,否则会被忽略。&
-u 在每个PID后面添加进程拥有者的用户名称。&
详细模式。输出似ps命令的输出,包含PID,USER,COMMAND等许多域,如果是内核访问的那么PID为kernel.&
-V 输出版本号。&
-4 使用IPV4套接字,不能和-6一起应用,只在-n的tcp和udp的命名存在时不被忽略。&
-6 使用IPV6套接字,不能和-4一起应用,只在-n的tcp和udp的命名存在时不被忽略。&
- 重置所有的选项,把信号设置为SIGKILL.&
man手册待继续阅读。&
*显示使用某个文件的进程信息:&
$ fuser -um /dev/sda2&
输入之后,输出如下:&
/dev/sda2:&&&&&&&&&&&
6378c(quietheart)&
6534c(quietheart)&
6628(quietheart)&
6653c(quietheart)&
7429c(quietheart)&
7549c(quietheart)& 7608c(quietheart)&
这个命令在umount的时候很有用,可以找到还有哪些用到这个设备了。&
*杀掉打开readme文件的程序,在确定之前有提示:&
$fuser -m -k -i readme&
或$fuser -kmi readme&
这里,会在kill之前询问是否确定。最好加上-v以便知道将要杀那个进程。&
*查看那些程序使用tcp的80端口:&
$fuser -n tcp 80&
或$fuser -v -n tcp 80&
或$fuser -v 80/tcp&
这里,后两种方式显示的信息比较全,因为有了-v选项。&
*假设无法卸载的设备为/dev/sdb1&
1)运行下面命令看一下哪个用户哪个进程占用着此设备&
fuser -m -v /dev/sdb1&
2)运行下面命令杀掉占用此设备的进程&
fuser -m -v -k /dev/sdb1&
或者fuser -m -v -k -i&
/dev/sdb1(每杀掉一下进程会让你确认)&
3)再umount&
*杀掉所有以任何形式访问文件系统 /home的进程:&
$fuser -km /home
断开某个远程&终端用户的连接
/kson34/blog/item/40bf5a13a3a86b2fdc54017c.html
who 查看用户连接
fuser -k /dev/pts/x x为who下看到的这个用户的pts序号
断开本地用户
fuser -k /dev/ttyx x为who查看到的tty序号
umount 的时候报错:device is
http://liuyu./44
今天刚上服务器习惯的用了输入:
查看到有移动硬盘挂载在/mnt/usbdisk目录下...
想必是上次没有umount&&
执行umount 的时候却提示:device is
强行: umount /dev/sdb2
提示:umount2: 设备或资源忙
umount: /mnt/usbdisk: device is busy
有人在使用...查看一样使用情况:&fuser&-m
/mnt/usbdisk&&&&
有 6406 进程在使用..
ps aux | grep
接着umount
提示还是失败...
接着&fuser&-k
/mnt/usbdisk
/mnt/usbdisk/:&&&&&&&
No automatic removal. Please use& umount
/mnt/usbdisk
按提示操作: umount
/mnt/usbdisk&
RHEL Server
5如何扩大tmpfs文件系统?&
http://bbs.chinaunix.net/viewthread.php?tid=2105252
[root@localhost ~ ]# mount tmpfs /dev/shm -t tmpfs -o size=7.9g
[root@nginx1 rsync_log]# df -h
Filesystem&&&&&&&&&&&
Size& Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol01
&&&&&&&&&&&&&&&&&&&&&&
16G&& 11G&
3.9G& 74% /
/dev/sda1&&&&&&&&&&&&&
13M&& 82M& 13%
tmpfs&&&&&&&&&&&&&&&&
0& 7.9G&& 0%
/dev/mapper/appvg-applv
&&&&&&&&&&&&&&&&&&&&&
178G& 128G&&
41G& 77% /opt
RedHat Linux
tmpfs的一点认识
http://blog.csdn.net/squidipt/article/details/6260112
大家知道物理内存的存取速度是通常磁盘的10倍以上,直接使用它来存放客户频繁访问的资源有很多应用场景,比方说我们的少量静态资源,例如css,js,image),那么我们就可以直接使用内存来存放这些资源,能很好的提高用户访问网站的体验。
传统的ramdisk是个块设,是把物理内存拿出来一部份当作磁盘使用,使用它需要用mkfs来创建文件系统,才能真正地使用它,且改变ramdisk的默认大小(默认是16MB)好像还比较麻烦.这个功能其实已可以使用tmpfs来代替,并且更简单.
tmpfs是一种基于内存的文件系统,使用它不需要像ramdisk还需要手工创建文件系统,直接mount即可.tmpfs不仅可以使用服务器的物理内
存,还可以使用您的swap分区来存储. 我们通常在RHEL的发行版里用df指令列出当前系统的磁盘空间看到如下一行:
&tmpfs&&&&&&&&&&&&&&&&
0& 4.0G&& 0%
这是在/etc/fstab里定义的.
tmpfs&&&&&&&&&&&&&&&&&&
/dev/shm&&&&&&&&&&&&&&&
defaults&&&&&&&
这个4.0G的分区空间由来是加载选项size的默认值(系统物理内存的一半),这个tmpfs使用的内存是在memory里的作为cached显示的。那么这个/dev/shm是可以使用的。注意,由于使用的是内存,所以存放在/dev/shm目录的东西是易失的。
RedHat Linux
tmpfs文件系统介绍
/archives/800.html
如果我必须一下子说清楚 tmpfs,我会说 tmpfs 就象虚拟磁盘(ramdisk),但不一样。象虚拟磁盘一样,tmpfs
可以使用您的 RAM,但它也可以使用您的交换分区来存储。而且传统的虚拟磁盘是个块设备,并需要一个 mkfs
之类的命令才能真正地使用它,tmpfs 是一个文件系统,而不是块设备;您只是安装它,它就可以使用了。总而言之,这让 tmpfs
成为我有机会遇到的最好的基于 RAM 的文件系统。
1、tmpfs 和VM&
让我们来看看 tmpfs 更有趣的一些特性吧。正如我前面提到的一样,tmpfs 既可以使用 RAM,
也可以使用交换分区。刚开始这看起来可能有点武断,但请记住 tmpfs
也是我们知道的“虚拟内存文件系统”。而且,您可能也知道,Linux 内核的虚拟内存资源同时来源于您的 RAM 和交换分区。内核中的
VM 子系统将这些资源分配到系统中的其它部分,并负责在后台管理这些资源,通常是透明地将 RAM 页移动到交换分区或从交换分区到 RAM
tmpfs 文件系统需要 VM 子系统的页面来存储文件。tmpfs 自己并不知道这些页面是在交换分区还是在 RAM 中;做这种决定是
VM 子系统的工作。tmpfs 文件系统所知道的就是它正在使用某种形式的虚拟内存。
2、不是块设备&
这里是 tmpfs 文件系统另一个有趣的特性。不同于大多数“标准的”文件系统,如 ext3、ext2、XFS、JFS、ReiserFS
和其它一些系统,tmpfs 并不是存在于一个底层块设备上面。因为 tmpfs 是直接建立在 VM 之上的,您用一个简单的 mount
命令就可以创建 tmpfs 文件系统了。
# mount tmpfs /mnt/tmpfs -t tmpfs
执行这个命令之后,一个新的 tmpfs 文件系统就安装在 /mnt/tmpfs,随时可以使用。注意,不需运行 mkfs.tmpfs
;事实上,那是不可能的,因为没有这样的命令存在。在 mount 命令执行之后,文件系统立即就被安装并且可以使用了,类型是 tmpfs
。这和 Linux 虚拟磁盘如何使用大相径庭;标准的 Linux 虚拟磁盘是
块设备,所以在使用它们之前必须用您选择的文件系统将其格式化。相反,tmpfs
是一个文件系统。所以,您可以简单地安装它就可以使用了。
1、动态文件系统的大小&
您可能想知道我们前面在 /mnt/tmpfs 安装的 tmpfs
文件系统有多大。这个问题的答案有点意外,特别是在和基于磁盘的文件系统比较的时候。/mnt/tmpfs
最初会只有很小的空间,但随着文件的复制和创建,tmpfs 文件系统驱动程序会分配更多的
VM,并按照需求动态地增加文件系统的空间。而且,当 /mnt/tmpfs 中的文件被删除时,tmpfs
文件系统驱动程序会动态地减小文件系统并释放 VM 资源,这样做可以将 VM 返回到循环当中以供系统中其它部分按需要使用。因为 VM
是宝贵的资源,所以您一定不希望任何东西浪费超出它实际所需的 VM,tmpfs
的好处之一就在于这些都是自动处理的。
tmpfs 的另一个主要的好处是它闪电般的速度。因为典型的 tmpfs 文件系统会完全驻留在 RAM
中,读写几乎可以是瞬间的。即使用了一些交换分区,性能仍然是卓越的,当更多空闲的 VM 资源可以使用时,这部分 tmpfs
文件系统会被移动到 RAM 中去。让 VM 子系统自动地移动部分 tmpfs 文件系统到交换分区实际上对性能上是好的,因为这样做可以让
VM 子系统为需要 RAM 的进程释放空间。这一点连同它动态调整大小的能力,比选择使用传统的 RAM
磁盘可以让操作系统有好得多的整体性能和灵活性。
3、没有持久性&
这看起来可能不象是个积极因素,tmpfs 数据在重新启动之后不会保留,因为虚拟内存本质上就是易失的。我想您可能猜到了 tmpfs
被称为“tmpfs”的一个原因,不是吗?然而,这实际上可以是一件好事。它让 tmpfs
成为一个保存您不需保留的数据(如临时文件,可以在 /tmp 中找到,还有 /var
文件系统树的某些部分)的卓越的文件系统。
为了使用 tmpfs,您所需要的就是启用了“Virtual memory file system support(以前是 shm
fs)”选项的 2.4 系列内核;这个选项在内核配置选项的“File systems”部分。一旦您有了一个启用了 tmpfs
的内核,您就可以开始安装 tmpfs 文件系统了。其实,在您所有的 2.4 内核中都打开 tmpfs
选项是个好主意,不管您是否计划使用 tmpfs。这是因为您需要内核 tmpfs 支持来使用 POSIX 共享的内存。然而,
System V共享的内存不需要内核中有 tmpfs 就 可以工作。注意,您不需要为了让 POSIX 共享的内存工作而安装 tmpfs
文件系统;您只需要在内核中支持 tmpfs 就可以了。POSIX
共享的内存现在使用得不太多,但这种情况可能会随着时间而改变。
1、避免低 VM 情况&
tmpfs 根据需要动态增大或减小的事实让人疑惑:如果您的 tmpfs 文件系统增大到它耗尽了 所有虚拟内存的程度,而您没有剩余的
RAM 或交换分区,这时会发生什么?一般来说,这种情况是有点讨厌。如果是 2.4.4 内核,内核会立即锁定。如果是 2.4.6
内核,VM 子系统已经以很多种方式得到了修正,虽然耗尽 VM 并不是一个美好的经历,事情也不会完全地失败。如果 2.4.6
内核到了无法分配更多 VM 的程度,您显然不愿意不能向 tmpfs
文件系统写任何新数据。另外,可能会发生其他一些事情。首先,系统的其他一些进程会无法分配更多的内存;通常,这意味着系统多半会变得
极度缓慢而且几乎没有响应。这样,超级用户要采取必要的步骤来缓解这种低 VM 的情况就会很困难,或异常地耗时。
另外,内核有一个内建的最终防线系统,用来在没有可用内存的时候释放内存,它会找到占用 VM
资源的进程并终止该进程。不幸的是,这种“终止进程”的解决方案在 tmpfs 的使用增加引起 VM
耗尽的情况下通常会导致不良后果。
以下是原因。tmpfs
本身不能(也不应该)被终止,因为它是内核的一部分而非一个用户进程,而且也没有容易的方法可以让内核找出是那个进程占满了 tmpfs
文件系统。&所以,内核会错误地攻击它能找到的最大的占用
VM 的进程,通常会是 X 服务器(X server),如果您碰巧在使用它。所以,您的 X 服务器会被终止,而引起低 VM
情况的根本原因(tmpfs)却没有被解决。
2、低 VM:解决方案&
幸运的是,tmpfs 允许您在安装或重新安装文件系统的时候指定文件系统容量的最大值上限。实际上,从 2.4.6 内核到 2.11g
内核,这些参数只能在 安装时设置,而不是重新安装时,但我们可以期望在不久的将来可以在重新安装时设置这些参数。tmpfs
容量最大值的最佳设置依赖于资源和您特定的 Linux 主机的使用模式;这个想法是要防止一个完全使用资源的 tmpfs
文件系统耗尽所有虚拟内存结果导致我们前面谈到的糟糕的低 VM 情况。寻找好的 tmpfs 上限值的一个好方法是使用 top
来监控您系统的交换分区在高峰使用阶段的使用情况。然后,确保指定的 tmpfs 上限稍小于所有这些高峰使用时间内空闲交换分区和空闲
RAM 的总和。
创建有最大容量的 tmpfs 文件系统很容易。要创建一个新的最大 32 MB 的 tmpfs 文件系统,请键入:
# mount tmpfs /dev/shm -t tmpfs -o size=32m
这次,我们没有把 tmpfs 文件系统安装在 /mnt/tmpfs,而是创建在 /dev/shm,这正好是 tmpfs
文件系统的“正式”安装点。如果您正好在使用 devfs,您会发现这个目录已经为您创建好了。
还有,如果我们想将文件系统的容量限制在 512 KB 或 1 GB 以内,我们可以分别指定 size=512k 和 size=1g
。除了限制容量,我们还可以通过指定 nr_inodes=x 参数限制索引节点(文件系统对象)。在使用 nr_inodes 时, x
可以是一个简单的整数,后面还可以跟一个 k 、 m 或 g 指定千、百万或十亿(!)个索引节点。
而且,如果您想把上面的 mount tmpfs 命令的等价功能添加到 /etc/fstab,应该是这样:
tmpfs&&/dev/shm&&tmpfs&&size=32m&&0&&0
四、在现存的安装点上安装&
在以前使用 2.2 的时候,试图在
已经安装了东西的安装点再次安装任何东西都会引发错误。然而,重写后的内核安装代码使多次使用安装点不再成为问题。这里是一个示例的情况:
假设我们有一个现存的文件系统安装在 /tmp。然而,我们决定要开始使用 tmpfs 进行 /tmp 的存储。过去,您唯一的选择就是卸载
/tmp 并在其位置重新安装您新的 tmpfs/tmp 文件系统,如下所示:
#&&umount /tmp
#&&mount tmpfs /tmp -t tmpfs -o
可是,这种解决方案也许对您不管用。可能有很多正在运行的进程在 /tmp 中有打开的文件;如果是这样,在试图卸载 /tmp
时,您就会遇到如下的错误:
umount: /tmp: device is busy
然而,使用最近的 2.4 内核,您可以安装您新的 /tmp 文件系统,而不会遇到“device is busy”错误:
# mount tmpfs /tmp -t tmpfs -o size=64m
用一条命令,您新的 tmpfs /tmp 文件系统就被安装在 /tmp,并安装在已经安装的不能再被直接访问的分区
之上。然而,虽然您不能访问原来的 /tmp,任何在原文件系统上还有打开文件的进程都可以继续访问它们。而且,如果您 unmount 基于
tmpfs 的 /tmp,原来安装的 /tmp 文件系统会重新出现。实际上,您在相同的安装点上可以安装任意数目的文件系统,安装点就象一个堆栈;卸载当前的文件系统,上一个最近安装的文件系统就会重新出现。
五、绑定安装&
使用绑定安装,我们可以将所有甚至
部分已经安装的文件系统安装到另一个位置,而在两个安装点可以同时访问该文件系统。例如,您可以使用绑定安装来安装您现存的根文件系统到
/home/drobbins/nifty,如下所示:
#&&mount &bind /
/home/drobbins/nifty
现在,如果您观察 /home/drobbins/nifty
的内部,您就会看到您的根文件系统(/home/drobbins/nifty/etc、/home/drobbins/nifty/opt
等)。而且,如果您在根文件系统修改文件,您在 /home/drobbins/nifty
中也可以看到所作的改动。这是因为它们是同一个文件系统;内核只是简单地为我们将该文件系统映射到两个不同的安装点。
注意,当您在另一处安装文件系统时,任何安装在绑定安装文件系统
内部的安装点的文件系统都不会随之移动。&换
句话说,如果您在单独的文件系统上有 /usr(即单独的分区或挂载点),我们前面执行的绑定安装就会让
/home/drobbins/nifty/usr 为空。您会需要附加的绑定安装命令来使您能够浏览位于
/home/drobbins/nifty/usr 的 /usr 的内容:
#&&mount &bind /usr
/home/drobbins/nifty/usr
绑定安装部分文件系统&
绑定安装让更妙的事情成为可能。假设您有一个 tmpfs 文件系统安装在它的传统位置
/dev/shm,您决定要开始在当前位于根文件系统的 /tmp 使用 tmpfs。虽然可以在 /tmp(这是可能的)安装一个新的
tmpfs 文件系统,您也可以决定让新的 /tmp 共享当前安装的 /dev/shm 文件系统。然而,虽然您可以在 /tmp 绑定安装
/dev/shm 就完成了,但您的 /dev/shm 还包含一些您不想在 /tmp
出现的目录。所以,您怎么做呢?这样如何:
# mkdir /dev/shm/tmp
# chmod 1777 /dev/shm/tmp
# mount &bind /dev/shm/tmp /tmp
在这个示例中,我们首先创建了一个 /dev/shm/tmp 目录,然后给它 1777 权限,对 /tmp
适当的许可。既然我们的目录已经准备好了,我们可以安装,也只能安装 /dev/shm/tmp 到 /tmp。所以,虽然 /tmp/foo
会映射到 /dev/shm/tmp/foo,但您没有办法从 /tmp 访问 /dev/shm/bar 文件。
正如您所见,绑定安装非常强大,让您可以轻易地修改文件系统设计,丝毫不必忙乱。
六&、关联文章&
RedHat Linux Enterprise
5.3 x64 filemon
http://bbs.chinaunix.net/viewthread.php?tid=1662054
[root@localhost ~ ]# lsof--help
[root@b2cbbstest Desktop]# lsof
lsof: illegal option character: -
lsof: illegal option character: e
lsof: no process ID specified
&latest revision:
ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/
&latest FAQ:
ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/FAQ
&latest man page:
ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/lsof_man
&usage: [-?abhlnNoOPRstUvVX] [+|-c c] [+|-d s] [+D
&[-F [f]] [-g [s]] [-i [i]] [+|-L [l]] [+m [m]]
[+|-M] [-o [o]]
&[-p s] [+|-r [t]] [-S [t]] [-T [t]] [-u s] [+|-w]
[-x [fl]] [-Z [Z]] [--] [names]
Def comma-separated set (s)
dash-separated ranges.
& -?|-h list
help&&&&&&&&&
-a AND selections
-b avoid kernel blocks
& -c c& cmd c,
/c/[bix]&&& +c
w& COMMAND width
& +d s& dir s
files&&&&&&&
-d s& select by FD
+D D& dir D tree *SLOW?*
&&&&&&&&&&&&&&&&&&&&&&&&&&
-i select IPv[46]
files&&& -l list
UID numbers
& -n no host
names&&&&&&&&
-N select NFS
files&&&&&&&
-o list file offset
& -O avoid overhead *RISK& -P no
names&&&&&&&&&&
-R list paRent PID
& -s list file
size&&&&&&&
listing&&&&&&&&&&
-T disable TCP/TPI info
& -U select Unix
socket&&& -v
list version
info&&&&&&
-V verbose search
& +|-w& Warnings
-X skip TCP&UDP
files&&&&&
-Z Z& context [Z]
& -- end option scan
& +f|-f& +filesystem or -file
& -F [f] -F? for
& +|-L [l] list (+) suppress (-) link counts &
l (0 = default = 0)
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+m [m] use|create mount supplement
& +|-M&& portMap
registration
-o o&& o 0t offset digits
exclude(^)|select
PIDs&&&&&&&&
-S [t] t second stat timeout (15)
& -T qs TCP/TPI Q,St (s) info
& -g [s] exclude(^)|select and print process group
& -i i&& select
by IPv[46] address:
[46][proto][@host|addr][:svc_list|port_list]
& +|-r [t] repeat every t seconds (15); + until no
files, - forever
exclude(^)|select login|UID set s
& -x [fl] cross over +d|+D File systems or
symbolic Links
& names& select named files or
files on named file systems
Anyon /d kernel ID check
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

我要回帖

更多关于 倒贴福字表示什么 的文章

 

随机推荐