源码编译安装、自定义systemd服务管理、rsync命令、远程同步实现、数据库服务介绍、部署数据库服务器、数据库基本操作、邮件的收发
源码安装的软件不会自动注册为系统服务,需手动创建.service文件。数据库类型特点适用场景MySQL关系型成熟、生态好、支持事务Web 应用、ERP、CRMPostgreSQL关系型功能强大、支持 JSON/地理数据GIS、金融、复杂查询RedisNoSQL(内存)超高性能、支持持久化缓存、会话存储、排行榜MongoDBNoSQL(文档)灵活 Schema、水平扩展日志、内容管理、IoT📌 本
·
一、源码编译安装:掌控软件的每一个细节
✅ 为什么用源码安装?
- 获取最新版本(如 Nginx 1.25+)
- 自定义模块(如编译 Nginx 时加入
--with-http_v3_module) - 满足安全合规要求(禁用不必要功能)
🛠 编译通用流程(以 Nginx 为例)
# 1. 安装依赖
sudo yum groupinstall -y "Development Tools"
sudo yum install -y pcre-devel zlib-devel openssl-devel
# 2. 下载源码
wget https://nginx.org/download/nginx-1.25.4.tar.gz
tar -zxvf nginx-1.25.4.tar.gz
cd nginx-1.25.4
# 3. 配置编译选项
./configure \
--prefix=/usr/local/nginx \
--sbin-path=/usr/local/nginx/sbin/nginx \
--conf-path=/usr/local/nginx/conf/nginx.conf \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--pid-path=/var/run/nginx.pid \
--lock-path=/var/run/nginx.lock \
--with-http_ssl_module \
--with-http_v2_module
# 4. 编译 & 安装
make -j$(nproc)
sudo make install
💡 最佳实践:将编译参数写入脚本,便于复现和审计。
二、自定义 systemd 服务:让源码软件“融入”系统
源码安装的软件不会自动注册为系统服务,需手动创建 .service 文件。
创建 Nginx 的 systemd 服务
# /etc/systemd/system/nginx.service
[Unit]
Description=The NGINX HTTP and reverse proxy server
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/var/run/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
KillSignal=SIGQUIT
TimeoutStopSec=5
KillMode=process
PrivateTmp=true
[Install]
WantedBy=multi-user.target
启用服务
sudo systemctl daemon-reload
sudo systemctl enable --now nginx
sudo systemctl status nginx # 验证状态
✅ 现在你可以像管理
httpd一样管理 Nginx:systemctl start|stop|restart nginx
三、rsync 命令:高效、安全的远程同步利器
🔑 rsync 核心优势
- 增量同步:只传差异部分,节省带宽
- 保持属性:权限、时间戳、软链接等
- 支持加密:通过 SSH 通道传输
📌 常用命令示例
| 场景 | 命令 |
|---|---|
| 本地同步 | rsync -av /src/ /dest/ |
| 推送至远程 | rsync -avz /data/ user@192.168.1.10:/backup/ |
| 拉取远程文件 | rsync -avz user@192.168.1.10:/logs/ ./local_logs/ |
| 删除目标多余文件 | rsync -av --delete /src/ /dest/ |
| 限速 10MB/s | rsync -av --bwlimit=10000 /src/ /dest/ |
⚠️ 注意:源路径末尾的
/很关键!
rsync -a /src /dest→ 在 dest 下创建src目录rsync -a /src/ /dest→ 将 src 内容直接放入 dest
四、远程同步实战:构建自动化备份方案
目标:每天凌晨 2 点自动备份 Web 目录到备份服务器
步骤 1:配置 SSH 免密登录
# 在 Web 服务器上执行
ssh-keygen -t rsa -N ""
ssh-copy-id backup_user@192.168.1.20
步骤 2:编写备份脚本
# /opt/scripts/backup_web.sh
#!/bin/bash
SOURCE="/var/www/html"
DEST="backup_user@192.168.1.20:/backup/web_$(date +%Y%m%d)"
LOG="/var/log/backup.log"
rsync -avz --delete $SOURCE/ $DEST >> $LOG 2>&1
echo "Backup completed at $(date)" >> $LOG
步骤 3:添加定时任务
# crontab -e
0 2 * * * /opt/scripts/backup_web.sh
✅ 实现:无人值守、增量、可追溯的备份机制。
五、数据库服务介绍:选型与场景
| 数据库 | 类型 | 特点 | 适用场景 |
|---|---|---|---|
| MySQL | 关系型 | 成熟、生态好、支持事务 | Web 应用、ERP、CRM |
| PostgreSQL | 关系型 | 功能强大、支持 JSON/地理数据 | GIS、金融、复杂查询 |
| Redis | NoSQL(内存) | 超高性能、支持持久化 | 缓存、会话存储、排行榜 |
| MongoDB | NoSQL(文档) | 灵活 Schema、水平扩展 | 日志、内容管理、IoT |
📌 本文以 MySQL 8.0 为例进行部署。
六、部署 MySQL 数据库服务器(源码 or YUM?)
方案 A:YUM 快速部署(推荐生产环境)
# 添加官方仓库
sudo rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-11.noarch.rpm
# 安装
sudo yum install -y mysql-server
# 启动
sudo systemctl enable --now mysqld
# 获取临时密码
sudo grep 'temporary password' /var/log/mysqld.log
方案 B:源码编译(高级定制)
适用于需修改内核参数、集成特定存储引擎等场景(过程略,参考 Nginx 编译逻辑)
七、数据库基本操作:从登录到建表
1. 初始化安全设置
sudo mysql_secure_installation
# 按提示设置 root 密码、移除匿名用户等
2. 登录并创建应用数据库
-- 登录
mysql -u root -p
-- 创建数据库
CREATE DATABASE blog_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- 创建用户并授权
CREATE USER 'blog_user'@'%' IDENTIFIED BY 'StrongPass123!';
GRANT ALL PRIVILEGES ON blog_db.* TO 'blog_user'@'%';
FLUSH PRIVILEGES;
3. 基础 SQL 操作
USE blog_db;
-- 创建文章表
CREATE TABLE posts (
id INT AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(255) NOT NULL,
content TEXT,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- 插入数据
INSERT INTO posts (title, content) VALUES ('Hello World', 'My first post!');
-- 查询
SELECT * FROM posts;
💡 安全建议:生产环境禁止使用
root远程登录,应用使用最小权限账号。
八、邮件的收发:从 MTA 到客户端
邮件系统核心组件
| 组件 | 作用 | 常见软件 |
|---|---|---|
| MTA(邮件传输代理) | 发送/转发邮件 | Postfix, Sendmail |
| MDA(邮件投递代理) | 将邮件存入用户邮箱 | Dovecot, Procmail |
| MUA(邮件用户代理) | 用户收发邮件的客户端 | Outlook, Thunderbird, mutt |
📧 搭建简易邮件服务器(Postfix + Dovecot)
1. 安装
sudo yum install -y postfix dovecot
2. 配置 Postfix(/etc/postfix/main.cf)
myhostname = mail.example.com
mydomain = example.com
myorigin = $mydomain
inet_interfaces = all
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
home_mailbox = Maildir/
3. 配置 Dovecot(启用 IMAP)
# /etc/dovecot/conf.d/10-mail.conf
mail_location = maildir:~/Maildir
# /etc/dovecot/conf.d/10-auth.conf
disable_plaintext_auth = no
auth_mechanisms = plain login
4. 启动服务
sudo systemctl enable --now postfix dovecot
sudo firewall-cmd --permanent --add-service={smtp,imap}
sudo firewall-cmd --reload
5. 测试收发
# 发送测试邮件(本地)
echo "Test body" | mail -s "Test Subject" user1@example.com
# 查看邮件(登录 user1 账户)
ls ~/Maildir/new/
⚠️ 公网邮件注意:
- 需配置 SPF/DKIM/DMARC 防止被标记为垃圾邮件
- 25 端口常被云厂商屏蔽,建议使用 587(Submission)端口 + TLS
更多推荐
所有评论(0)