1. 常用命令
-
帮助命令:help、man
-
远程登录:ssh、scp、wget、curl等
-
文件创建删除:mkdir、touch、rm、mv、cp
-
文件权限:chmod
-
文件搜索:find、whereis、locate
-
任务管理:ps、kill、netstat、fdisk、service、systemctl、crontab
-
网络管理:ifconfig、ping、telnet、filewall-cmd、dig(网络探寻)、host(查看ip)
-
环境变量:env、export
-
查看系统信息:uname、date、history、who
-
文本处理工具:awk、sed、grep
2. 项目中怎么用到了linux
首先,我配置一下Linux的环境,包括用户的创建、权限的赋予等等
再者我负责安装一些软件以供使用,比如MySQL、Redis、Hyperledge Fabric、Nginx、Java、Go等
再者我将java服务打到服务器上,虚拟机的参数设置等,让其运行
最后编写shell脚本,不间断的检测服务运行状态,MySQL日志脚本等
2.1 创建用户、管理用户
- 为什么要创建多个用户? 为了更好的管理服务器,避免有的人恶意操作弄蹦服务器,因为之前就出现过这个事情,有同学上去修改nginx配置,导入服务弄蹦。
- 创建了3个用户,因为项目组有3个人,一个写前端的,一个写后端的,还有一个技术支持
cat /etc/passwd # 查看所有用户
useradd -r -m -s /bin/bash cly # 添加用户
passwd cly # 修改密码
userdel -r cly # 删除用户
chown -R cly /root # 赋予cly用户对root目录的读权限
sudo chmod 777 ./root # 赋予当前用户对root目录的所有权限 7 read4 write2 execute1
2.2 安装软件
- MySQL修改端口,修改root密码,开启远程连接,设置一些时区等
- Redis修改端口,修改密码等
- Hyperledger fabric环境配置,安装docker,docker镜像等
# 安装软件
apt-get update
apt-get install mysql
yum install mysql
# 进程控制
service start mysql
service stop mysql
service restart mysql
systemctl start mysqld
systemctl stop mysqld
systemctl restart mysqld
2.3 服务部署
由于我们的项目是前后端分离的,因此需要先将前端Vue项目打包的文件放在服务器,然后通过nginx去代理。
后端就是通过idea生成jar包,然后将jar包打到服务器上运行,也通过nginx去代理请求,然后进行负载均衡。
这里要注意几点:
- nginx的反向代理
- nginx的负载均衡
- JVM的调参
2.4 服务监控
然后就是正式运行时,需要对服务的运行情况有个很好的监控,我也想尝试写个脚本来定时监控服务器数据和JVM数据,然后发送到偶邮箱或保存下来,下次查看,但是实际操作时还是有点困难,最后没有实现,一般只是偶尔上去看一看服务的运行状况
查看服务运行状态
# 查看服务的运行状态
netstat -ntlp
# 查看服务的连接数
netstat -an |grep 'ESTABLISHED' |grep -i '3306' | wc -l
查看JVM的信息
2.5 shell脚本
最后就是一些自动脚本了,比如程序开机启动,一些定时服务,比如nginx单点检查、mysql数据全量备份和增量备份,还有java服务的日志备份等
步骤:
- 书写脚本
- 定时执行
定时执行脚本
首先开启Crond服务,然后新增调度任务,
- 在命令行输入: crontab -e 然后添加相应的任务,wq存盘退出。 针对某个用户的
- 直接编辑/etc/crontab 文件,即vi /etc/crontab,添加相应的任务。 针对系统的任务