- 2.1、vi命令解读
- 2.2、命令行模式中的快捷键
- 2.3、常见的系统命令
- 2.4、查看进程端口号
- 2.5、yum安装httpd服务
- 2.6、httpd测试127.0.0.1地址访问
- 2.7、高危命令之kill
- 2.8、yum软件的安装和卸载(卸载的时候不去校验依赖)
- 2.9、wget下载安装包、压缩、解压
一、上次课程回顾
- 若泽大数据github博客:https://ruozedata.github.io/archives/
hexo自行搭建github博客的好处:可以自行修改时间,为了以后未来找工作嘿嘿嘿;使用csdn这些时间都是固定的死的。 - Linux Shell命令四:https://blog.csdn.net/SparkOnYarn/article/details/104830312
二、Linux基础命令五
2.1、大数据crontab的使用
1、关于大数据的调度工具:
- airflow、azkaban、ozzie、rundeck(哔哩哔哩若泽大数据)
- Linux自带的crontab工具:
2、shell脚本的测试使用:
1、打印shell脚本的时间:
[hadoop@hadoop001 test]$ cat test.sh
#!/bin/bash
date
[hadoop@hadoop001 test]$ ll
total 8
-rw-rw-r-- 1 hadoop hadoop 172 Mar 14 13:03 1.zip
-rw-rw-r-- 1 hadoop hadoop 0 Mar 13 16:14 rz.log
-rw-rw-r-- 1 hadoop hadoop 17 Mar 14 23:05 test.sh
[hadoop@hadoop001 test]$ ll
total 8
-rw-rw-r-- 1 hadoop hadoop 172 Mar 14 13:03 1.zip
-rw-rw-r-- 1 hadoop hadoop 0 Mar 13 16:14 rz.log
-rw-rw-r-- 1 hadoop hadoop 17 Mar 14 23:05 test.sh
[hadoop@hadoop001 test]$ ./test.sh
-bash: ./test.sh: Permission denied
[hadoop@hadoop001 test]$ chmod 744 test.sh
[hadoop@hadoop001 test]$ ./test.sh
Sat Mar 14 23:13:26 CST 2020
2、正常的xxx.sh的shell脚本:
#!/bin/bash
shell脚本执行需要rwx中的x执行权限
./xxx.sh
或者sh ./xxx.sh
后缀.sh 第一行#!/bin/bash 的解释器没有的话,直接使用sh ./test来执行也是可以的。
3、crontab的使用:
1、crontab --help查询如何使用:
[hadoop@hadoop001 test]$ crontab --help
crontab: invalid option -- '-'
crontab: usage error: unrecognized option
Usage:
crontab [options] file
crontab [options]
crontab -n [hostname]
Options:
-u <user> define user
-e edit user's crontab
-l list user's crontab
-r delete user's crontab
-i prompt before deleting
-n <host> set host in cluster to run users' crontabs
-c get host in cluster to run users' crontabs
-s selinux context
-x <mask> enable debugging
Default operation is replace, per 1003.2
2、crontab -e来编辑使用脚本:
* * * * * /home/hadoop/test/test.sh >> /home/hadoop/test.log
//这5个*分别代表分、小时、日、月、周
3、保存退出提示如下:这个目录是临时的保存完了就没有了:
"/tmp/crontab.Dn9VxW" 2L, 62C written
crontab: installing new crontab
面试题:crontab调度的shell脚本怎么做到每隔10秒执行一次?
1、编辑test.sh shell脚本
vi /home/hadoop/test/test.sh
[hadoop@hadoop001 test]$ cat test.sh
#!/bin/bash
for ((i=1;i<=6;i++))
do
date
sleep 10s
done
exit
2、赋予x执行权限:
chmod 744 /home/hadoop/test/test.sh
3、编写调度脚本:crontab -e
* * * * * /home/hadoop/test/test.sh >> /home/hadoop/test1.log
4、tail -F /home/hadoop/test1.log
2.2、crontab如何后台执行
1、后台执行:
./test.sh &
nohup ./test.sh & 工作中这种比较常用
nohup ./test.sh >> /home/hadoop/test.log 2>&1 & 生产上使用这种
2、生产上的后台执行:
[hadoop@hadoop001 test]$ nohup ./test.sh &
[1] 1521
[hadoop@hadoop001 test]$ nohup: ignoring input and appending output to 鈥榥ohup.out鈥
^C
[hadoop@hadoop001 test]$ nohup ./test.sh > /home/hadoop/test2.log 2>&1 &
[2] 1553
[1] Done nohup ./test.sh
3、打印
[hadoop@hadoop001 test]$ cat nohup.out
Sat Mar 14 23:54:14 CST 2020
Sat Mar 14 23:54:24 CST 2020
Sat Mar 14 23:54:34 CST 2020
Sat Mar 14 23:54:44 CST 2020
Sat Mar 14 23:54:54 CST 2020
Sat Mar 14 23:55:04 CST 2020
[2]+ Done nohup ./test.sh > /home/hadoop/test2.log 2>&1
2.3、软连接
-
目的为了软件升级
-
场景:比如生产上有两个mysql版本,mysql5.6和mysql5.7;
1、语法:ln -s mysql-5.7.11-linux-glibc2.5-x86_64 mysql
lrwxrwxrwx 1 mysqladmin dba 35 Mar 5 16:14 mysql -> mysql-5.7.11-linux-glibc2.5-x86_64/
drwxr-xr-x 13 mysqladmin dba 4096 Mar 9 12:36 mysql-5.7.11-linux-glibc2.5-x86_64
-
做了软连接之后,以后配置环境变量的时候就可以直接/usr/localmysql,软连接就相当于是一个快捷方式。
-
语法:ln -s 原path 目标path
生产中遇到的情况:
CDH升级,原文件丢失,现在的文件过来路径找不到;
1、创建mysql-5.7.11-linux文件夹:
[root@hadoop001 hadoop]# mkdir mysql-5.7.11-linux
2、做一个软连接:
[root@hadoop001 hadoop]# ln -s mysql-5.7.11-linux mysql
[root@hadoop001 hadoop]# pwd
/home/hadoop
3、测试把mysql-5.7.11-linux mysql这个目录删除,会发现光标软连接的光标跳动:
[root@hadoop001 hadoop]# rm -rf mysql-5.7.11-linux/
[root@hadoop001 hadoop]# ll
total 16
drwxrwxr-x 2 hadoop hadoop 4096 Mar 5 15:58 app
drwxrwxr-x 2 hadoop hadoop 4096 Mar 5 15:59 data
drwxrwxr-x 2 hadoop hadoop 4096 Mar 5 15:58 lib
lrwxrwxrwx 1 root root 19 Mar 15 00:07 mysql -> mysql-5.7.11-linux/
drwxrwxr-x 2 hadoop hadoop 4096 Mar 11 14:32 software
-rw-r--r-- 1 hadoop hadoop 0 Mar 15 00:06 test1.log
4、删除快捷方式:
rm -rf mysql
解决:
1、找到原文件的文件夹:
2、删除快捷键的文件、文件夹 --> 重新做软连接,大胆的删除快捷方式:rm -rf mysql
a.带有版本号的文件绝对不能配置在文件中,不要给自己挖坑:
b.J总个人建议使用绝对路径(别把自己绕晕,不好维护,全路径直观明了)
生产问题:
比如系统盘50G,数据盘data01有1T,
CDH的log文件都是在/var/log/hbase/xxx.log 1G,这个文件保存10份,但是这台机器不可能单单只布置一个服务,系统盘50个G的数据光日志文件就10G肯定是吃不消的。
解决方法:
mkdir /data01/log/
mv /var/log/hbase /data01/log
ln -s /data01/log/hbase /var/log/hbase
忽略了一个问题:当前盘要撑爆的时候,在进行日志文件迁移的时候,有可能存在权限的变更;看另外一台机器的权限(chown和chmod权限又是什么),不光光针对软连接进行修改,还针对文件夹进行修改。