服务器环境配置
- 安装 Linux 可视化管理工具(Cockpit)
- 安装 Git
- 安装 Docker
- 安装 Docker可视化工具
- 安装 Nginx
- 防火墙配置
- 安装 jdk
- 安装 MySql
- 数据安全
- 定时任务
- 后台守护定时任务 - nohup
- 查看远程端口是否能访问
安装 Linux 可视化管理工具(Cockpit)
一、CentOS 8
内置 Cockpit
# 配置 cockpit 服务开机启动
systemctl enable --now cockpit.socket
# 启动 cockpit 服务
systemctl start cockpit
二、CentOS 7
安装启动
# 安装
yum install cockpit
# 开启服务
firewall-cmd --permanent --zone=public --add-service=cockpit
# 重新加载防护墙
firewall-cmd --reload
三、访问
浏览器打开 192.168.0.106:9090
- 查看 Linux 版本
cat /proc/version
- 必须关闭本地代理
- Mac 使用 Safari 访问,需要下载安装证书
- Nginx 配置无效,关闭防火墙即可
systemctl stop firewalld.service
安装 Git
yum install git
安装 Docker
安装 Docker可视化工具
安装 Nginx
# install
yum install nginx
# start
sudo systemctl start nginx
# 开机启动
systemctl enable nginx.service
配置之后,外网无法访问,可以尝试关闭防火墙
防火墙配置
# 查看防火墙状态
firewall-cmd --state
# 关闭防火墙,若外网无法访问,可以尝试关闭防火墙
systemctl stop firewalld.service
# 禁止防火墙开机启动
systemctl disable firewalld.service
# 查询端口是否开放成功
firewall-cmd --query-port=8080/tcp
# 移除指定的端口
firewall-cmd --permanent --remove-port = 8081/tcp
安装 jdk
# centos 安装 jdk # 1. 查看支持安装的 jdk 版本
yum search java|grep jdk
# 2. 选择 jdk 版本,并安装
yum install -y java-1.8.0-openjdk
# 3. 检查是否安装成功
java -version
安装 MySql
使用 docker 安装 mysql
# 下载 image
docker pull mysql:8
# 运行
docker run -d \
-v /root/project/mysql:/var/lib/mysql \
-it \
--restart=always \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=12345 \
-default-authentication-plugin=mysql_native_password \
-e MYSQL_DATABASE=mydb \
--name mysql8 \
mysql:8
-d:同–detach,以背景模式執行。
-v:同–volume,掛載host目錄到container目錄,也就是host的~/mysql-docker-data會保存container /var/lib/mysql的資料。
-it:同–interactive加–tty,作用為運行container時可登入其bash操作。
–name mysql8,命名container名稱為mysql8。
-p:同–publish。作用為將container的3306 port對映到”主機(host)”的3306 port
-e:同–env,設定環境變數。MYSQL_ROOT_PASSWORD設定MySQL root帳號的登入密碼為12345,MYSQL_DATABASE設定資料庫名稱為mydb。
mysql:8:mysql為image名稱,8為image tag。所以運行的是mysql:8的image。
–default-authentication-plugin=mysql_native_password:把儲存密碼的方式改為MySQL 5的mysql_native_password,因為MySQL 8的儲存方式預設為caching_sha2_password,但一些免費的MySQL client圖形工具如Sequel Pro,Navicat等會無法連線,所以設定此參數。
数据安全
为了安全,一般 3306 端口是不外露的,所以直接访问容器中的 mysql
# 查看 mysql 容器的 ip
docker network inspect bridge
"Containers": {
"201d93a9fd1b7720ce246f723de94000a38a837a66d9953b2214f984e058f692":
{
"Name": "mysql8",
"EndpointID": "a057887aa370eacc50887ce110b979f6c768605eec52b598365e6b5c922cffc6",
"MacAddress": "02:42:ac:11:00:02",
"IPv4Address": "172.17.0.2/16",
"IPv6Address": ""
},
"f289ebc3b13d4906ab86ac361b95a2d251da1d97dfae03dddd34a5fb018c1e11":
{
"Name": "erp_jingwaidianshang_server",
"EndpointID": "6ddd32aff22b495c18c9d1db59037da7ea353b47a6b2e7e2e18e24b8ed05b27d",
"MacAddress": "02:42:ac:11:00:03",
"IPv4Address": "172.17.0.3/16",
"IPv6Address": ""
}
}
# 172.17.0.2 是 mysql 容器的 ip,在其他容器中 ping 172.17.0.2 可以访问
本地调试,安全链接数据库
定时任务
创建用于执行的脚本,使用 Linux 自带 Crontab 定时执行任务
创建执行脚本 auto_demo.sh
#!/bin/bash
ls
设置脚本访问权限
chmod a+x auto_demo.sh
设置定时任务
crontab -e
* * * * * /root/project/sh/auto_demo.sh
Crontab 基本命令
- crontab -e 编辑工作表
一行代表一个任务
[分] [时] [日] [月] [周] command
- crontab -l 列出工作表里的命令
- crontab -r 删除工作 表
- 在线检测工具
# 每分钟执行
* * * * * /root/project/sh/auto_demo.sh
# 周一到周五23:59都执行
59 23 * * 1,2,3,4,5 /root/project/sh/auto_demo.sh
59 23 * * 1-5 /root/project/sh/auto_demo.sh
# 每10分钟定时执
0 */10 * * * /root/project/sh/auto_demo.sh
添加日志
* * * * * "pwd" >> /Users/liruwei/crontab.log 2>&1
` » /Users/liruwei/crontab.log 2>&1` 指定输出日志文件,若文件不存在,会生成。
后台守护定时任务 - nohup
Crontab 最少单位为分钟,不能满足日常开发。可以使用 nohup
运行脚本。nohup 英文全称 no hang up(不挂起),用于在系统后台不挂断地运行命令,退出终端不会影响程序的运行。
参数说明
- Command:要执行的命令。
- Arg:一些参数,可以指定输出文件。
- &:让命令在后台执行,终端退出后命令仍旧执行。
运行
file.sh
每1秒执行请求
#!/bin/bash
while [ 1 == 1 ]
do
sleep 1
res=$(curl -s localhost:7600/api/file)
done
运行
# 后台运行 ./file.sh 脚本
$ nohup ./file.sh &
停止运行
列出所有文件运行进程,如 file.sh
$ ps -ef | grep file.sh
# root 3409 1378 0 23:04 pts/3 00:00:00 /bin/bash ./file.sh
结束进程用 kill
指令
kill -9 1378
查看远程端口是否能访问
# mac
nc -vz -w 2 www.baidu.com 80
# linux
telnet www.baidu.cm 80