Cronin 让重复工作自动化

xiao

发布于204天前
活着就要折腾!
你是否还在每天手动执行重复的任务?数据库备份、数据同步、日志清理、服务监控...这些繁琐的工作完全可以交给 Cronin 来自动完成。本文将带你通过几个真实场景,快速掌握 Cronin 的基础任务创建,让你的工作更高效。



https://appstore.lazycat.cloud/#/shop/detail/cloud.lazycat.app.xiao.cronin



## 场景一:每天凌晨自动备份数据库

### 业务需求

作为运维人员,你需要确保生产数据库每天都有备份,以防数据丢失。手动备份不仅容易遗忘,还占用大量时间。

### 解决方案

使用 Cronin 创建一个 SQL 任务,每天凌晨 2 点自动执行数据库备份。

### 实施步骤

#### 1. 添加数据库和代码仓库链接

右上角菜单(三个点)点击连接,新增 sql 链接。填写数据库访问信息点击测试,测试成功后保存。

![image.png](https://dl.playground.lazycat.cloud/guidelines/921/c7d64737-270e-4261-9a98-896dd18b78a0.png "image.png")

再创建一个 git 链接,填写凭据信息,测试通过后保存。

![image.png](https://dl.playground.lazycat.cloud/guidelines/921/5f29c1fe-89fe-48eb-91c1-89dfcd2aa8a0.png "image.png")

#### 2. 准备备份脚本

我们需要准备一个数据库备份的 SQL 脚本。可以选择两种方式:

**方式一:直接在 Cronin 中编写 SQL**

如果你的备份逻辑简单,可以直接在任务中编写 SQL 语句:

```sql
-- 创建备份表
CREATE TABLE IF NOT EXISTS user_backup_20240101 AS SELECT * FROM users;
```

**方式二:从 Git 仓库拉取脚本(推荐)**

对于复杂的备份逻辑,建议将脚本保存在 Git 仓库中,这样便于版本管理和团队协作。

#### 3. 创建定时任务

1. 点击"任务"菜单,选择"添加任务"
2. 填写任务基本信息:
   - **任务名称**:`生产数据库每日备份`
   - **执行类型**:选择"周期类型"
   - **执行时间**:`0 0 2 * * *`(每天凌晨 2 点执行,cron 表达式:秒 分 时 天 月 星期)
3. 配置 SQL 任务:
   - **执行类型**:选择 SQL
   - **数据源**:选择已配置的生产数据库连接
   - **SQL 脚本**:选择从 Git 拉取,填写仓库地址和脚本路径


![image.png](https://dl.playground.lazycat.cloud/guidelines/921/e2f75cca-9d90-4e1d-8b13-0ce5b5e4243e.png "image.png")

确认无误后保存。

![image.png](https://dl.playground.lazycat.cloud/guidelines/921/ec3c6e96-4ade-4ae3-841f-0029ae37b175.png "image.png")

#### 3. 激活任务

配置完成后,默认是草稿状态(未启用)。


![image.png](https://dl.playground.lazycat.cloud/guidelines/921/c62919a2-c1b3-45d1-ba51-45c81c89cba7.png "image.png")

点击状态图标 ,选择激活并保存,任务就会按照设定的时间自动执行。

![image.png](https://dl.playground.lazycat.cloud/guidelines/921/1cfb808e-6be5-4e30-8f66-bb4dd1b078ae.png "image.png")

### 配置效果

- ✅ 每天凌晨 2 点自动执行备份
- ✅ 备份脚本版本化管理
- ✅ 无需人工干预,释放运维时间

## 场景二:定时调用 API 同步业务数据

### 业务需求

你的系统需要从第三方平台(如 CRM、ERP)定时同步数据,保持数据一致性。手动同步不仅效率低,还容易出错。

### 解决方案

使用 Cronin 的 HTTP 任务,定时调用第三方 API 接口,自动同步数据。

### 实施步骤

#### 1. 创建 HTTP 任务

1. 新建任务,选择执行类型为 **HTTP**
2. 配置任务信息:
   - **任务名称**:`同步CRM客户数据`
   - **执行时间**:`0 0 */2 * * *`(每 2 小时执行一次)

#### 2. 配置 API 请求

在 HTTP 任务配置中填写:

- **请求地址**:`https://api.crm.com/v1/customers/sync`
- **请求方法**:`POST`
- **请求头**:
    - Authorization: Bearer YOUR_ACCESS_TOKEN
    - Content-Type: application/json
- **请求体**:
  ```json
  {
    "last_sync_time": "2024-01-01T00:00:00Z",
    "sync_type": "incremental"
  }
  ```


![image.png](https://dl.playground.lazycat.cloud/guidelines/921/866bb787-ff0a-4879-9831-f1122bcbc19d.png "image.png")

### 配置效果

每两个小时就会调用 api 结构同步一次数据。

> 注意: Cronin 相当于是个定时触发器,api 接口实现同步的逻辑。

## 场景三:每周自动清理过期日志文件

### 业务需求

服务器上的日志文件每天都在增长,占用大量磁盘空间。需要定期清理 30 天前的日志文件,释放存储空间。

### 解决方案

使用 Shell 任务,编写清理脚本,每周执行一次。

### 实施步骤

#### 1. 编写清理脚本

创建 Shell 脚本 `cleanup_logs.sh` 保存到远程服务器上,如保存到 `/opt/scripts/cleanup_logs.sh` 文件中

```bash
#!/bin/bash
# 清理 30 天前的日志文件
find /var/log/app -name "*.log" -mtime +30 -delete
# 清理空目录
find /var/log/app -type d -empty -delete
# 记录清理操作
echo "$(date): Cleaned logs older than 30 days" >> /var/log/cleanup.log
```

#### 2. 添加主机链接

右上角菜单(三个点)点击连接,新增主机链接。填写远程主机访问信息点击测试,测试成功后保存。

![image.png](https://dl.playground.lazycat.cloud/guidelines/921/3e9afd34-2bb1-46dc-a365-d1c4e069b311.png "image.png")

#### 2. 配置 Shell 任务

1. 执行类型选择周期性任务
2. 执行时间写 `0 0 3 * * 0`(每周日凌晨 3 点执行,避开业务高峰期)
3. 选择执行类型为 **Shell**
4. 填写脚本路径:`/opt/scripts/cleanup_logs.sh`
5. 选择已配置的主机连接

![image.png](https://dl.playground.lazycat.cloud/guidelines/921/618c6b17-1fff-4ffc-8116-a84a5c12325e.png "image.png")

### 扩展场景

- 🗑️ **清理临时文件**:每天清理 `/tmp` 目录下的临时文件
- 📦 **清理 Docker 镜像**:每周清理未使用的 Docker 镜像和容器
- 💾 **数据库归档**:每月将历史数据归档到冷存储

## 总结

通过以上三个真实场景,我们掌握了 Cronin 基础任务的核心用法:

- 📅 **定时任务**:让重复工作自动化
- 🔄 **数据同步**:保持系统间数据一致
- 🧹 **资源清理**:自动维护系统资源

现在,你已经可以开始用 Cronin 来优化你的工作流程了。记住,**自动化不是目的,提高效率才是**。从最耗时、最容易出错的任务开始,逐步将工作自动化,你会发现工作效率大大提升!

下一步,你可以学习《流水线与 Webhook 接收》,了解如何将多个任务串联起来,实现更复杂的自动化流程。

评论

0

暂无评论

说点什么呢~
收藏
0
0
0