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 为 * 时表示每分钟都要执行 program,f2 为 * 时表示每小时都要执行程序,其余类推
(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"
每天22:50关闭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 [options] filename
参数
默认 : 没有选项,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
显示所有tcp和udp连接
$ 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