1. 转换或者拷贝文件dd
dd:用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。
注意:指定数字的地方若以下列字符结尾,则乘以相应的数字:b=512;c=1;k=1024;w=2
1.1参数注释:
(1)if=文件名:输入文件名,缺省为标准输入。即指定源文件。
(2)of=文件名:输出文件名,缺省为标准输出。即指定目的文件。
(3)ibs=bytes:一次读入bytes个字节,即指定一个块大小为bytes个字节。
obs=bytes:一次输出bytes个字节,即指定一个块大小为bytes个字节。
bs=bytes:同时设置读入/输出的块大小为bytes个字节。
(4)cbs=bytes:一次转换bytes个字节,即指定转换缓冲区大小。
(5)skip=blocks:从输入文件开头跳过blocks个块后再开始复制。
(6)seek=blocks:从输出文件开头跳过blocks个块后再开始复制。
注意:通常只用当输出文件是磁盘或磁带时才有效,即备份到磁盘或磁带时才有效。
(7)count=blocks:从输出文件开头跳过blocks个块后再开始复制。
1.2实际案例:
(1)将本地的/dev/hdb整盘备份到/dev/hdd
dd if=/dev/hdb of=/dev/hdd
(2)将/dev/hdb全盘数据备份到指定路径的image文件
dd if=/dev/hdb of=/root/image
(3)将备份文件恢复到指定盘
dd if=/root/image of=/dev/hdb
(4)备份/dev/hdb全盘数据,并利用gzip工具进行压缩,保存到指定路径
dd if=/dev/hdb | gzip > /root/image.gz
(5)将压缩的备份文件恢复到指定盘
gzip -dc /root/image.gz | dd of /dev/hdb
(6)备份磁盘开始的512个字节大小的MBR信息到指定文件:
dd if=/dev/hdb of=/root/image count=1 bs=512
#count=1指仅拷贝一个块,bs=512指块大小为512个字节
(7)备份软盘
dd if=/dev/fd0 of=disk.img count=1 bs=1440k
#bs=1440k即块大小为1.44Mb
(8)拷贝内存内容到硬盘
dd if=/dev/mem of=/root/mem.bin bs=1024
#bs=1024即指定块大小为1k
2. lsof是一个列出当前系统打开文件的工具
(1)lsof输出信息含义:
在终端下输入lsof即可显示系统打开的文件,因为lsof需要访问核心内存和各种文件,所以必须用root用户的身份运行它才能够充分发挥其功能。
每行显示一个打开的文件,若不指定条件默认将显示所有进程打开的所有文件。lsof输出各列信息的意义如下:
COMMAND:进程的名称
PID:进程标识符
USER:进程所有者
PD:文件描述符,应用程序通过文件描述符识别该文件。如cwd,txt等,详解:
1)cwd:表示current work dirctory,即:应用程序的当前工作目录,这是该应用程序启动的目录,除非它本身对这个目录进行更改
2)txt:该类型的文件是程序代码,比如应用程序二进制文件本身或共享库。
3)lnn:
TYPE:文件类型,比如DIR,REG等等
1)DIR:表示目录
2)CHR:表示字符类型
3)BLK:块设备类型
4)UNIX:UNIX域套接字
5)FIFO:先进先出(FIFO)队列
6)IPV4:网际协议(IP)套接字
DEVICE:指定磁盘的名称
SIZE:文件的大小
NODE:索引节点(文件在磁盘上的标识)
NAME:打开文件的确切名称
(2)语法格式:lsof [options] filename
lsof a.txt #显示开启文件a.txt的进程
lsof -c abc #显示出以字母abc开头进程现在打开的文件
lsof -p 123 #列出进程号为123的进程所打开的文件
lsof -g gname/gid #显示归属gname或gid的进程情况
lsof -u uname/uid #显示归属uname或uid的进程情况
lsof +d /usr/local/ #显示目录下被进程开启的文件
lsof +D /usr/local/ #同上,但是会搜索目录下的子目录,时间较长
lsof -d 4 #显示使用fd为4的进程
lsof -i #用以显示符合条件的进程情况
(3)实际案例:
(1)列出所有打开的文件:
lsof
备注:如果不加任何参数,就会打开所有被打开的文件,建议加上一条参数来具体定位。
(2)查看谁在使用某个文件:
lsof /filepath/file
(3)递归查看某个目录的文件信息:
lsof +D /filepath/filepath2/
备注:使用了+D,对应目录下的所有子目录和文件都会被列出。
(4)比使用+D选项,遍历查看某个目录的所有文件信息的方法:
lsof | grep '/filepath/filepath2/'
(5)列出某个用户打开的文件信息
lsof -u username
(6)列出某个进程所打开的文件信息
lsof -c mysql
备注:-c选项将会列出所有以mysql开头的程序的文件;也可写成lsof | grep mysql
(7)列出多个程序都打开的文件信息
lsof -c mysql -c apache
(8)列出某个用户以及某个程序所打开的文件信息
lsof -u test -c mysql
(9)列出除了某个用户外的被打开的文件信息
lsof -u ^root
备注:^这个符号在用户名之前,将会把是root用户打开的进程不让显示
(10)通过某个进程号显示该进程打开的文件信息
lsof -p 1
(11)列出多个进程号对应的文件信息
lsof -p 123,456,789
(12)列出除了某个进程号,其他进程号所打开的文件信息
lsof -o ^1
(13)列出所有的网络连接
lsof -i
(14)列出所有tcp网络连接信息
lsof -i tcp
(15)列出所有udp网络连接信息
lsof -i udp
(16)列出谁在使用某个端口
lsof -i :3306
(17)列出谁在使用某个特定的udp端口
lsof -i udp:55
特定的tcp端口
lsof -i tcp:80
(18)列出某个用户的所有活跃的网络端口
lsof -a -u test -i
(19)列出所有网络文件系统
lsof -N
(20)域名socket文件
lsof -u
(21)某个用户组所打开的文件信息
lsof -g 5555
(22)根据文件描述列出对应的文件信息
lsof -d FD(like 2)
lsof -d 2
(23)根据文件描述范围列出文件信息
lsof -d 2-3