sort、uniq、crontab命令

1.sort:以行为单位对多行数据进行排序

常用参数及意义:

参数 作用
-u 排序后相同的行只显示一次
n 数值排序
-r 降序
-k 以哪个字段为关键字进行排序
-t 字段分隔符
-f 排序时忽略字符大小写

测试:

1.对/etc/passwd 的账号进行排序
sort、uniq、crontab命令
注意:sort 是默认以第一个数据来排序,而且默认是以字符串形式来排序,所由字母 a 开始升序排序。
2./etc/passwd 内容是以 : 来分隔的,以第三栏来排序
sort、uniq、crontab命令
3.默认是以字符串来排序的,如果想要使用数字排序:
sort、uniq、crontab命令
4.默认是升序排序,如果要倒序排序:
sort、uniq、crontab命令
5.如果要对/etc/passwd,先以第六个域的第2个字符到第4个字符进行正向排序。再基于第一个域进行反向排序。
sort、uniq、crontab命令
6.查看/etc/passwd有多少个shell:对/etc/passwd的第七个域进行排序,然后去重
sort、uniq、crontab命令

对文件进行sort测试

sort、uniq、crontab命令
n:数值排序
sort、uniq、crontab命令
-r :降序
sort、uniq、crontab命令
sort、uniq、crontab命令
-u:去除重复行
sort、uniq、crontab命令
-t :字段分隔符 以第二列来排序:
sort、uniq、crontab命令

2. uniq命令:

uniq命令可以去除排序过的文件中的重复行,因此uniq经常和sort合用。也就是说,为了使uniq起作用,所有的重复行必须是相邻的。

选项 参数
-i 忽略大小写字符的不同
-c 进行计数
-u 只显示唯一的行

file内容如下:
sort、uniq、crontab命令
①排序文件,默认是去重
sort、uniq、crontab命令
②排序之后删除了重复行,同时在行首位置输出该行重复的次数
sort、uniq、crontab命令
③仅显示存在重复的行,并在行首显示该行重复的次数
sort、uniq、crontab命令
④仅显示不重复的行
sort、uniq、crontab命令

3.Crontab:添加任务

Linux计划任务,Linux系统下一个自动执行指定任务的程序(计划任务),使用Crontab命令添加任务。时间间隔的单位可以是分钟、小时、日、月、周及以上的任意组合。这个命令非常设合周期性的日志分析或数据备份等工作。

常用参数

参数 描述
-u 用来设置某个用户的crontab服务
-l 显示某个用户的crontab文件内容,如果不指定用户,则表示显示当前用户的crontab文件内容
-e 编辑某个用户的crontab文件内容。如果不指定用户,则表示编辑当前用户的crontab文件
-i 在删除用户的crontab文件时给确认提示
-r 从/var/spool/cron目录中删除某个用户的crontab文件,如果不指定用户,则默认删除当前用户的crontab文件

more /etc/crontab #Crontab配置文件
sort、uniq、crontab命令

测试:

每一分钟执行一次对/etc目录的备份,备份至/backup目录中,保存文件名格式为bak_etc_2018-01-01

步骤一:创建脚本文件并运行脚本文件:sh aaa.bash
sort、uniq、crontab命令
步骤二:给脚本赋可执行权限
sort、uniq、crontab命令
查看
sort、uniq、crontab命令
步骤三:编辑crontab文件内容 每分钟执行一次脚本文件 分时日月周期 后跟要执行的脚本程序
sort、uniq、crontab命令
查看
sort、uniq、crontab命令

注意:每分钟执行一次,第二次执行时,原内容会被覆盖,即第一次运行后时间为15:01 第二次为15:02

2. 每两小时取当前系统/proc/meminfo文件中的所有以S开头的信息至/backup/memory文件中
步骤一:创建脚本文件并运行脚本文件:sh 2.sh
sort、uniq、crontab命令
sort、uniq、crontab命令
sort、uniq、crontab命令
步骤二:给脚本赋可执行权限
sort、uniq、crontab命令
步骤三:编辑crontab文件内容 每两小时执行一次脚本文件 分时日月周期 后跟要执行的脚本程序
sort、uniq、crontab命令