Linux4--SSH, awk, cut, crontab, 时间同步

一.SSH免密码登录

	## Same thing without a password  ##可以配置不输入密码

	# %wheel        ALL=(ALL)       NOPASSWD: ALL

​	user			ALL=(ALL)       NOPASSWD: ALL

二.数据处理工具 : cut

cut : 高级文本处理命令
cut是一个选取命令,就是将一段数据经过分析,取出我们想要的数据,一般来说,选取的
   信息通常针对行来进行,并不是整篇信息一起分析
cut的语法
	cut [-bn] [file]
	cut [-c] [file]
	cut [-df] [file]
	
	-b 表示byte,以字节为单位取出固定的字节区间,这些字节位置忽略多字节边界,除
	   非与-n一起使用
	-n 表示取消分割多字节字符,只与-b一起使用;如果字符的最够一个字节落在了参数
	   区间内,那就会将这个字符取出,如果不在参数区间内,那么就舍弃
	   中国 -nb 2-5 中
	   
	-c 表示char 以字符为单位,取出固定字符区间
	   中国人 -c 1-2 中国
	   
	-d 表示自定义分隔符,默认是制表符,与-f一起使用
	-f 表示field 依据-d分割字符,将一段信息分割成多个字段,用-f表示取出第几个字段
	-b的使用
	
		取出每行的第三个字节who | cut -b 3
		取出每行第三个到最后一个字节 who | cut -b 3-
		取出每行第一个到第三个字节 who | cut -b -3
		取出每行第2-4个和第10个字节 who | cut -b 10,2-4
		注意:cut命令如果使用-b选项,name执行该命令时,cut会将后面的定位进行从小到
		     大排序,然后按照排好的顺序取出数据
			
		who | cut -b -3,2-
			注意:取出全部的内容,排除重复的定位
	-c的使用
		vi 1.txt
		-------------
		星期一
		星期二
		星期三
		星期四
		星期五
		星期六
		星期七
		星期八
		--------------
		cut -c 1,2 1.txt
		cut -c -2,1- 1.txt
		
		vi cls.txt
		-------------------
		苍老师是个好老师
		喜欢中国文化
		爱好写大字
		------------------
		cut -b 2-5 cls.txt
		cut -nb 2-5 cls.txt
		cut -c 2-5 cls.txt

	-f的使用  表示field
		echo $PATH | cut -d ':' -f 4,3
		[root@hadoop01 home]# echo $PATH | cut -d ':/' -f 4,3
		cut: the delimiter must be a single character
		Try `cut --help' for more information.
		注意:分割符只能是一个字符,或者空格,如果分割符是多个字节或字符,cut无效

	cut的缺陷
		处理多分割符的数据时,cut不支持,只支持单字符的分割

三.awk

文本分析工具 : 将数据逐行读入,默认以空格进行切片切开的部分再进行各种分析处理
		
使用方法 : 	awk '{pattern + action}'
	pattern表示awk在数据中查找的内容,action表示在查找到的匹配内容执行的动作或者
	       说一系列指令
	{}不需要在程序中始终出现,但是他们用于根据特定的形式进行一系列的执行进行分组
		
	awk {begin}{}{end}
		通常来说:awk是以文件的一行为处理单位,awk每接收一行数据执行相应的命令
	
	awk的调用方式:
		1.命令行  awk [-F files -separator] 'command' input-files
		command : awk的指令的集合
		-F files : 域分隔符
		input-files : 要处理的文件(可以由多个)
		
		2.shell脚本方式将所有的awk命令写入一个文件,并使用awk脚本可执行,然后用awk
		命令解析器作为脚本的首行,以便通过awk脚本来解析调用,相当于shell脚本首行的
		#!/bin/bash

		3.将所有的awk命令插入一个单独的文件然后调用awk -f + awk脚本 + input-files
		-f 表示要加载的awk命令集合的文件
		input-files 表示要处理的文件
		相当于awk -f awk.sh /data/cls.txt

命令行执行(practese)
	
	1.打印last -5结果的第一个字段(以空格切分)
	last -5 | awk '{print $1}'
	last -5 | awk '{print $1,$2}'
	last -5 | awk '{print $1","$2}'
	逗号加上引号就可以原样输出
	
	2.显示/etc/passwd的文件的账号信息
	cat /etc/passwd | awk -F ':' '{print $1}'
	显示/etc/passwd/的第一列与第七列的内容,之间用'\t'分割
	awk -F ":" '{print $1'\t'$7}' /etc/passwd
	3.输出账户和对应的shell,在首行加入name,shell,尾行加入youxiu,如下:
	name,shell
	user,/bin/bash
	.
	.
	.
	youxiu
	awk -F ':' 'BEGIN{print "name,shell"}{print $1","$7}END{print "youxiu"}' /etc/passwd
	
	4.记录每一行的行号
	awk -F ':' 'BEGIN{print "name,shell" ;a=0}{a++; print a,$1","$7}END{print "youxiu"}' /etc/passwd
	
	5.awk内置变量的使用
	awk -F ':' '{print "filename:" FILENAME",linenumber:"NR",cloimns:"NF",line"$0}' /etc/passwd
	
	6.变量的声明和赋值
	变量的声明在BEGIN中声明,不声明可以直接使用,初始值是0;但是一般使用变量尽量先声明后使用,可读性更好
	awk -F ':' 'BEGIN{print "name,shell" }{a++; print a,$1","$7}END{print "youxiu"}' /etc/passwd
	
	在BEGIN中声明一个变量count,记录系统中用户的个数,在END中输出用户的总数
	
	7.awk的执行流程
	先分割,BEGIN;ACTION;END
	BEGIN和END只执行一次,ACTION执行多次(有多少行数据就执行多少次)
	ACTION 可以由多个语句,以分号隔开
	
	8.统计某个文件夹下文件占用的字节数
	ll | awk 'BEGIN{size=0}{size=size+$5}END{print size}'
	
	9.统计某个目录实际占用的磁盘的大小 /mnt/centos
	ll -R /mnt/centos | awk 'BEGIN{size=0}{size=size+$5}END{print size}'
	
	10.统计某个文件夹下,文件占用的字节数,大小为4096的是目录
	size用于记录文件占用的字节数,count用于记录当前目录下目录的个数
	ll | awk 'BEGIN{size=0;count=0}{if($5!=4096){size=size+$5}else{count++}}END{print size","count}'
	
	11.循环语句
		awk循环语句while,dowhile,for,支持break,continue
		
	12.数组
		awk中的数组的下标可以是数字和字母,数组的下标通常被称为关键字(key),值和
		关键字存储在一张哈希表里,不是顺序存储.数组和变量一样,都是在使用时创建的,
		awk会自动判断其存储的类型是数字还是字符串.一般来说,awk中的数组收集记录中
		的信息,可以用于计算总和,统计单词,跟踪模板匹配次数
		
		练习1:将所有/etc/passwd用户名放在一个数组中,在END中循环输出用户名的数组及数组的key
		
		awk -F ':' 'BEGIN{count=0;}{name[count]=$1;count++;}END{for(i=0;i<NR;i++){print i,name[i]}}' /etc/passwd

		练习2:用户id的累加和
		练习3:用户id的最大值
		练习4:uid的平局值

四.crontab配置

通过crontab命令,我们可以在固定的时间执行指定的系统指令和shell脚本
时间间隔的单位可以是分钟,小时,日,周,月以及上述的组合
非常适合周期性的日志分析,或者数据的备份工作
服务的管理:
service crond start/stop/restart/status
命令的格式:
	crontab [-u user] file 
	crontab [-u user] [-e | -l | -r]
参数:
	-u user : 用来设置某个用户crontab服务 crontab -u hadoop
	file : 命令文件的名字,表示该文件作为crontab任务的执行列表文件并载入crontab
	       任务  crontab -u hadoop file
	-e : 编辑某个用户的crontab任务,如果不指定用户,则表示编辑当前用户
	-l : 列举某个用户的crontab任务
	-r : 删除某个用户的crontab任务

配置说明:
	*  *  *  *  *  command
	分 时 日 月 周 命令
	分:表示分钟从1-59,每分钟用*/1表示
	时:表示0-23小时
	天:1-31,表示日期
	月:1-12,表示月份
	周:0-6,表示星期几,0表示日
	crontab -e

五.时间同步

1.date -s "2018-10-18 16:38"  hwclock -w
2.配置时间服务器,集群的其他机器都跟其中一台机器同步时间---定时任务执行时间同步的操作
	(1)时间同步服务器需要安装ntp服务 hadoop01
		>yum list | grep ntp
		>yum -y install ntp.x86_64
		>vi /etc/ntp.conf
		--------------------------------------
		# Hosts on local network are less restricted.
		#restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
		restrict 192.168.91.0 mask 255.255.255.0 nomodify notrap ##添加网段

		# Use public servers from the pool.ntp.org project.
		# Please consider joining the pool (http://www.pool.ntp.org/join.html).
		#server 0.centos.pool.ntp.org iburst
		#server 1.centos.pool.ntp.org iburst
		#server 2.centos.pool. ntp.org iburst
		#server 3.centos.pool.ntp.org iburst
		server 127.127.1.0##先禁用4个自带的服务,添加server 127.127.1.0
		---------------------------------------
		>service ntpd start
		
	(2)客户端(需要做时间同步的机器) 需要安装另一个软件 ntpdate  hadoop02 和 hadoop03
		yum list | grep ntp
		yum -y install  ntpdate.x96_64

六.集群的基本需求

网络互通
主机映射
防火墙关闭
时间同步
SSH免密码登录
每台机器进jdk安装好,配置好环境变量
安装一个数据库(一台机器上就可以)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值