香港vps服务器的Linux运维必会的命令详解(二)

已关闭留言

香港vps服务器的Linux运维必会的命令详解

11. crontab

简介

执行定时任务

语法

crontab [ -u user ] file

#或者

crontab [ -u user ] { -l | -r | -e }

crontab [ -u user ] file

#或者

crontab [ -u user ] { -l | -r | -e }

参数

-e : 执行文字编辑器来设定时程表,内定的文字编辑器是 VI,如果你想用别的文字编辑器,则请先设定 VISUAL 环境变数来指定使用那个文字编辑器(比如说 setenv VISUAL joe)

-r : 删除目前的时程表

-l : 列出目前的时程表

时间格式:

(1) 其中 f1 是表示分钟,f2 表示小时,f3 表示一个月份中的第几日,f4 表示月份,f5 表示一个星期中的第几天。program 表示要执行的程序。

f1 * 时表示每分钟都要执行 programf2 * 时表示每小时都要执行程序,其余类推

(2) f1 a-b 时表示从第 a 分钟到第 b 分钟这段时间内要执行,f2 a-b 时表示从第 a 到第 b 小时都要执行,其余类推

(3) f1 */n 时表示每 n 分钟个时间间隔执行一次,f2 */n 表示每 n 小时个时间间隔执行一次,其余类推

(4) f1 a, b, c,… 时表示第 a, b, c,… 分钟要执行,f2 a, b, c,… 时表示第 a, b, c…个小时要执行,其余类推

f1 f2 f3 f4 f5 program

* * * * *

– – – – –

| | | | |

| | | | +—– 星期中星期几 (0 – 7) (星期天 为0)

| | | +———- 月份 (1 – 12)

| | +————— 一个月中的第几天 (1 – 31)

| +——————– 小时 (0 – 23)

+————————- 分钟 (0 – 59)

示例

每分钟执行一次/bin/ls

* * * * * /bin/ls

12 月内, 每天的早上 6 点到 12 点,每隔 3 个小时 0 分钟执行一次 /usr/bin/backup

0 6-12/3 * 12 * /usr/bin/backup

每月每天的午夜 0 20 , 2 20 , 4 20 执行 echo “haha”

20 0-23/2 * * * echo”haha”

每天2250关闭ssh服务

50 22 * * * /sbin/service sshd stop

每月1号和15号检查/home 磁盘

0 0 1,15 * * fsck /home

0 0 1,15 * * fsck /home

12. lsof

简介

列出当前系统打开文件的工具

语法

lsof optionsfilename

参数

默认 : 没有选项,lsof列出活跃进程的所有打开文件

组合 : 可以将选项组合到一起,如-abc,但要当心哪些选项需要参数

-a 结果进行运算(而不是

-c<进程名> 列出指定进程锁打开的文件

-g 列出GID号进程详情

+d<文件号> 列出占用该文件号的进程

+D<目录> 递归列出目录下被打开的文件

-n<目录> 列出NFS的文件

-i<条件> 列出符合条件的进程

-p<进程号> 列出指定进程号打开的文件

-l 在输出显示用户ID而不是用户名

-h 获得帮助

-t 仅获取进程ID

-U 获取UNIX套接口地址

-F 格式化输出结果,用于其它命令。可以通过多种方式格式化,如-F pcfn(用于进程id、命令名、文件描述符、文件名,并以空终止)

示例

#列出所有打开的文件:

$ lsof

#备注: 如果不加任何参数,就会打开所有被打开的文件,建议加上一下参数来具体定位

#递归查看某个目录的文件信息

$ lsof +D /filepath/filepath2/

#备注: 使用了+D,对应目录下的所有子目录和文件都会被列出

# 列出某个用户打开的文件信息

lsof -u username

# 列出某个程序所打开的文件信息

lsof -c mysql

# 通过某个进程号显示该进行打开的文件

lsof -p 1

# 列出所有tcp 网络连接信息

lsof -i tcp

# 列出谁在使用某个端口

lsof -i :3306

# 列出所有网络文件系统

lsof -N

# 根据文件描述列出对应的文件信息

lsof -d description(like 2)

13. netstat

简介

获取系统的网络状况

语法

netstat [-acCeFghilMnNoprstuvVwx][-A<网络类型>][–ip]

参数

-a�all 显示所有连线中的Socket

-A<网络类型>�<网络类型> 列出该网络类型连线中的相关地址

-c�continuous 持续列出网络状态

-C�cache 显示路由器配置的快取信息

-e�extend 显示网络其他相关信息

-F�fib 显示FIB

-g�groups 显示多重广播功能群组组员名单

-h�help 在线帮助

-i�interfaces 显示网络界面信息表单

-l�listening 显示监控中的服务器的Socket

-M�masquerade 显示伪装的网络连线

-n�numeric 直接使用IP地址,而不通过域名服务器

-N�netlink�symbolic 显示网络硬件外围设备的符号连接名称

-o�timers 显示计时器

-p�programs 显示正在使用Socket的程序识别码和程序名称

-r�route 显示Routing Table

-s�statistics 显示网络工作信息统计表

-t�tcp 显示TCP传输协议的连线状况

-u�udp 显示UDP传输协议的连线状况

-v�verbose 显示指令执行过程

-V�version 显示版本信息

-w�raw 显示RAW传输协议的连线状况

-x�unix 此参数的效果和指定“-A unix”参数相同

�ip�inet 此参数的效果和指定“-A inet”参数相同

示例

显示详细的网络状况

$ netstat -a

显示所有的监听套接口

$ netstat -l

显示所有tcpudp连接

$ netstat -tuln

14. route

简介

查看路由表

语法

route [-f] [-p] [Command] [Destination] [mask Netmask] [Gateway] [metric Metric] [if Interface]

参数

-c 显示更多信息

-n 不解析名字

-v 显示详细的处理信息

-F 显示发送信息

-C 显示路由缓存

-f 清除所有网关入口的路由表

-p add 命令一起使用时使路由具有永久性

add:添加一条新路由。

del:删除一条路由。

-net:目标地址是一个网络

-host:目标地址是一个主机

netmask:当添加一个网络路由时,需要使用网络掩码

gw:路由数据包通过网关。注意,你指定的网关必须能够达到

metric:设置路由跳数

示例

添加网关/设置网关

$ route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0

屏蔽一条路由

$ route add -net 224.0.0.0 netmask 240.0.0.0 reject

删除路由记录

$ route del -net 224.0.0.0 netmask 240.0.0.0

$ route del -net 224.0.0.0 netmask 240.0.0.0 reject

删除和添加设置默认网关

$ route del default gw 192.168.120.240

$ route add default gw 192.168.120.240

15. tcpdump

简介

用于抓包分析数据包

语法

tcpdump [-adeflnNOpqStvx][-c<数据包数目>][-dd][-ddd][-F<表达文件>][-i<网络界面>][-r<数据包文件>][-s<数据包大小>][-tt][-T<数据包类型>][-vv][-w<数据包文件>][输出数据栏位]

参数

-a 尝试将网络和广播地址转换成名称

-c<数据包数目> 收到指定的数据包数目后,就停止进行倾倒操作

-d 把编译过的数据包编码转换成可阅读的格式,并倾倒到标准输出

-dd 把编译过的数据包编码转换成C语言的格式,并倾倒到标准输出

-ddd 把编译过的数据包编码转换成十进制数字的格式,并倾倒到标准输出

-e 在每列倾倒资料上显示连接层级的文件头

-f 用数字显示网际网络地址

-F<表达文件> 指定内含表达方式的文件

-i<网络界面> 使用指定的网络截面送出数据包

-l 使用标准输出列的缓冲区

-n 不把主机的网络地址转换成名字

-N 不列出域名

-O 不将数据包编码最佳化

-p 不让网络界面进入混杂模式

-q 快速输出,仅列出少数的传输协议信息

-r <数据包文件> 从指定的文件读取数据包数据

-s <数据包大小> 设置每个数据包的大小

-S 用绝对而非相对数值列出TCP关联数

-t 在每列倾倒资料上不显示时间戳记

-tt 在每列倾倒资料上显示未经格式化的时间戳记

-T<数据包类型> 强制将表达方式所指定的数据包转译成设置的数据包类型

-v 详细显示指令执行过程

-vv 更详细显示指令执行过程

-x 用十六进制字码列出数据包资料

-w<数据包文件> 把数据包数据写入指定的文件

示例

显示TCP包信息

$ tcpdump

显示指定数量包

$ tcpdump -c 20

精简显示

$ tcpdump -c 10 -q //精简模式显示 10个包

16. tar

简介

用于文件备份

语法

tar [-ABcdgGhiklmMoOpPrRsStuUvwWxzZ][-b <区块数目>][-C <目的目录>][-f <备份文件>][-F <Script文件>][-K <文件>][-L <媒体容量>][-N <日期时间>][-T <范本文件>][-V <卷册名称>][-X <范本文件>][-<设备编号><存储密度>][–after-date=<日期时间>][–atime-preserve][–backuup=<备份方式>][–checkpoint][–concatenate][–confirmation][–delete][–exclude=<范本样式>][–force-local][–group=<群组名称>][–help][–ignore-failed-read][–new-volume-script=<Script文件>][–newer-mtime][–no-recursion][–null][–numeric-owner][–owner=<用户名称>][–posix][–erve][–preserve-order][–preserve-permissions][–record-size=<区块数目>][–recursive-unlink][–remove-files][–rsh-command=<执行指令>][–same-owner][–suffix=<备份字尾字符串>][–totals][–use-compress-program=<执行指令>][–version][–volno-file=<编号文件>][文件或目录…]

参数

-A�catenate 新增文件到已存在的备份文件

-b<区块数目>�blocking-factor=<区块数目> 设置每笔记录的区块数目,每个区块大小为12Bytes

-B�read-full-records 读取数据时重设区块大小

-c�create 建立新的备份文件

-C<目的目录>�directory=<目的目录> 切换到指定的目录

-d�diff�compare 对比备份文件内和文件系统上的文件的差异

-f<备份文件>�file=<备份文件> 指定备份文件

-F<Script文件>�info-script=<Script文件> 每次更换磁带时,就执行指定的Script文件

-g�listed-incremental 处理GNU格式的大量备份

-G�incremental 处理旧的GNU格式的大量备份

-h�dereference 不建立符号连接,直接复制该连接所指向的原始文件

-i�ignore-zeros 忽略备份文件中的0 Byte区块,也就是EOF

-k�keep-old-files 解开备份文件时,不覆盖已有的文件

-K<文件>�starting-file=<文件> 从指定的文件开始还原

-l�one-file-system 复制的文件或目录存放的文件系统,必须与tar指令执行时所处的文件系统相同,否则不予复制

-L<媒体容量>-tape-length=<媒体容量> 设置存放每体的容量,单位以1024 Bytes计算

-m�modification-time 还原文件时,不变更文件的更改时间

-M�multi-volume 在建立,还原备份文件或列出其中的内容时,采用多卷册模式

-N<日期格式>�newer=<日期时间> 只将较指定日期更新的文件保存到备份文件里

-o�old-archive�portability 将资料写入备份文件时使用V7格式

-O�stdout 把从备份文件里还原的文件输出到标准输出设备

-p�same-permissions 用原来的文件权限还原文件

-P�absolute-names 文件名使用绝对名称,不移除文件名称前的“/“

-r�append 新增文件到已存在的备份文件的结尾部分

-R�block-number 列出每个信息在备份文件中的区块编号

-s�same-order 还原文件的顺序和备份文件内的存放顺序相同

-S�sparse 倘若一个文件内含大量的连续0字节,则将此文件存成稀疏文件。

-t�list 列出备份文件的内容

-T<范本文件>�files-from=<范本文件> 指定范本文件,其内含有一个或多个范本样式,让tar解开或建立符合设置条件的文件

-u�update 仅置换较备份文件内的文件更新的文件

-U�unlink-first 解开压缩文件还原文件之前,先解除文件的连接

-v�verbose 显示指令执行过程

-V<卷册名称>�label=<卷册名称> 建立使用指定的卷册名称的备份文件

-w�interactive 遭遇问题时先询问用户

-W�verify 写入备份文件后,确认文件正确无误

-x�extract�get 从备份文件中还原文件

-X<范本文件>�exclude-from=<范本文件> 指定范本文件,其内含有一个或多个范本样式,让ar排除符合设置条件的文件

-z�gzip�ungzip 通过gzip指令处理备份文件

-Z�compress�uncompress 通过compress指令处理备份文件

-<设备编号><存储密度> 设置备份用的外围设备编号及存放数据的密度

�after-date=<日期时间> 此参数的效果和指定”-N”参数相同

�atime-preserve 不变更文件的存取时间

�backup=<备份方式>�backup 移除文件前先进行备份

�checkpoint 读取备份文件时列出目录名称

�concatenate 此参数的效果和指定“-A”参数相同

�confirmation 此参数的效果和指定“-w”参数相同

�delete 从备份文件中删除指定的文件。

�exclude=<范本样式> 排除符合范本样式的文件

�group=<群组名称> 把加入设备文件中的文件的所属群组设成指定的群组

�help 在线帮助

�ignore-failed-read 忽略数据读取错误,不中断程序的执行

�new-volume-script=<Script文件> 此参数的效果和指定“-F”参数相同

�newer-mtime 只保存更改过的文件

�no-recursion 不做递归处理,也就是指定目录下的所有文件及子目录不予处理

�null null设备读取文件名称

�numeric-owner 以用户识别码及群组识别码取代用户名称和群组名称

�owner=<用户名称> 把加入备份文件中的文件的拥有者设成指定的用户

�posix 将数据写入备份文件时使用POSIX格式

�preserve 此参数的效果和指定“-ps”参数相同

�preserve-order 此参数的效果和指定“-A”参数相同

�preserve-permissions 此参数的效果和指定“-p”参数相同

�record-size=<区块数目> 此参数的效果和指定“-b”参数相同

�recursive-unlink 解开压缩文件还原目录之前,先解除整个目录下所有文件的连接

�remove-files 文件加入备份文件后,就将其删除

�rsh-command=<执行指令> 设置要在远端主机上执行的指令,以取代rsh指令

�same-owner 尝试以相同的文件拥有者还原文件

�suffix=<备份字尾字符串> 移除文件前先行备份

�totals 备份文件建立后,列出文件大小

�use-compress-program=<执行指令> 通过指定的指令处理备份文件

�version 显示版本信息

�volno-file=<编号文件> 使用指定文件内的编号取代预设的卷册编号

示例

压缩当前目录下所有的文件,非打包

$ tar -czvf test.tar.gz *

列出压缩文件内容

$ tar -tzvf test.tar.gz

解压文件

$ tar -zxvf test.tar.gz