logo头像

分享技术,品味人生

瑞吉实战3-linux实验

瑞吉实战3–linux实验

实验内容

实战所需资料、工具、代码均存放于个人百度网盘中

实验1、linux环境搭建。

安装介质:

  • centos7,可以到官网下载,或瑞吉提供的材料,均存放于个人百度网盘,搜索【瑞吉】
  • vmworkstation,瑞吉提供,网上搜索的破解,个人习惯使用服务器的esxi环境,这里略
  • finalssh,免费,一站式服务,除了shell还有xftp、性能监控,不过占用资源多,易卡顿。
    • 商业方案可选择破解的secureCRT或免费的putty

安装后的操作:

  • 修改主机名、网络
# 修改主机名
hostnamectl set-hostname xxx
bash

# 修改网卡地址
ip addr #查看当前网卡和地址
vi /etc/sysconfig/network-scripts/ifcfg-ensxxx

# 补充网卡配置主要信息
BOOTPROTO="static"		# 使用静态IP地址,默认为dhcp
IPADDR="192.168.138.100"	# 设置的静态IP地址
NETMASK="255.255.255.0"	# 子网掩码
GATEWAY="192.168.138.2"	# 网关地址
DNS1="192.168.138.2" 	# DNS服务器
ONBOOT="yes"             	#是否开机启用

实验2、常用linux命令及技巧

常见命令:

  • ls、pwd、cd、touch、mkdir、rm

技巧:巧用tab、上下键翻找

特殊指令 说明
cd ~ 回到用户家目录
cat -n xxx 显示行号
more、less 空格、b翻页,q退出
tail -f xxx 动态读取内容
mkdir -p 多级目录一并创建
tar zcvf xxx.tar.gz xxx 打包并压缩
vi set nu 显示行号
gg、G首行、末行
grep xxx *.java 在所有文件中进行搜索
cat << EOF > xxxx
EOF
将中间文字塞入到某某文件,这个在shell或笔记中常用!
rpm -qa|grep xxx 查询当前系统已安装的软件,卸载 rpm -e --nodeps xxxxx
yum provides
nohup xxx &> xxx.log & 后台运行,并记录日志,停止一般直接ps、kill
ip addr 查看当前ip设置
yum provides “tree” 根据命令反查yum中的rpm包
sed -i “s/^SELINUX=enforcing/SELINUX=disabled/g” /etc/selinux/config 文本替换,/可以替换其他字符、如#避免有歧义!另外^、g应该是行首、行位

linux常用规范

目录 用途
/usr/local 软件安装路径

实验3、软件包管理

在centos中有这几种方式安装软件

  • 二进制包,已经在第三方平台编译好,针对本系统,拿到后解压、运行即可。较少见
  • RPM包,按红帽的包管理规范打包,使用rpm -ivh xxx.rpm安装,常出现依赖包不足的问题,需自行解决
  • yum安装,在线安装rpm,本质与rpm一致,只要源充足,依赖问题自行解决,因此有本地目录、局域网、官网、第三方的解决方案。
  • 源码编译安装,也是比较常见的方式,下载源码包,执行编译、安装,前期还可以对源码进行修改,开源首选。
软件 常用安装 备注
tomcat 二进制包 需要jdk支持,如果环境变量没有,需要修改脚本指定位置
jdk 二进制包 配置环境变量方便其他软件使用
mysql rpm 社区版一般有7个,需要net-tools支持,一般用rpm *的方式安装避免顺序问题!
mysql 二进制包 解压、运行、配置、上生产
nginx 源码 先安装依赖,然后编译,运行
redis 源码 编译、运行

实验4、firewall-cmd常用命令

防火墙操作:

  • 查看防火墙状态(systemctl status firewalld、firewall-cmd –state)
  • 暂时关闭防火墙(systemctl stop firewalld)
  • 永久关闭防火墙(systemctl disable firewalld)
  • 开启防火墙(systemctl start firewalld)
  • 开放指定端口(firewall-cmd –zone=public –add-port=8080/tcp –permanent)
  • 关闭指定端口(firewall-cmd –zone=public –remove-port=8080/tcp –permanent)
  • 立即生效(firewall-cmd –reload)
  • 查看开放的端口(firewall-cmd –zone=public –list-ports)

实验5、添加自启动服务

rpm、yum安装的一般没有这种烦恼!

自编译的解决办法,如redis, 执行下方脚本就可以使用systemctl进行启停操作

cat << EOF > /usr/lib/systemd/system/redis.service
[Unit]
Description=Redis In-Memory Data Store
Documentation=https://redis.io/
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/redis/bin/redis-server /usr/local/redis/redis.conf
ExecStop=/usr/local/redis/bin/redis-cli shutdown
ExecReload=/bin/kill -s HUP $MAINPID
Restart=always

[Install]
WantedBy=multi-user.target
EOF

具体可参考 CentOS7使用systemctl添加自定义服务 - 简书 (jianshu.com)

另外还有添加到init.d目录下的service目录,看红帽的发展者应该是逐步废弃的技术了,暂不展开!

二进制包,比如添加环境变量、全路径执行、或配置其他系统级脚本,后面有碰到再陆续补充!

实验6、添加定时器服务

centos开机自启动

# 添加脚本
cat << EOF > /root/test.sh
#! /bin/bash
java -jar /lmes/deployee/backend/ies-0.0.1-SNAPSHOT.jar &> /root/1.log &
EOF

# 授予脚本运行权限,测试OK
chmod +x test.sh

# 打开系统自启脚本
chmod +x /etc/rc.d/rc.local

# 添加脚本到系统进程中
echo "/root/test.sh" > /etc/rc.d/rc.local

crontab定时器

[root@xiaoluo ~]# cat /etc/crontab 
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name command to be executed
# 2 8-20/3 * * *      8:02,11:02,14:02,17:02,20:02 执行
# 0-10 17 1 * * 毎月1日从 17:00到7:10 毎隔1分钟 执行
# */10 * * * *        每隔10分 执行

[root@prd-bus-mysql-02 yunuser]# crontab -l
30 03 * * * /bin/sh /app/xtraBackup_database.sh >/dev/null 2>&1
*/5 * * * * ntpdate 192.168.70.151 > /dev/null 2>&1

实验7、应用git、maven、github进行自动化编译发布

评论系统未开启,无法评论!