商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 编程开发 > Ubuntu如何使用Node.js实现自动化任务

Ubuntu如何使用Node.js实现自动化任务

  发布于2026-07-13 阅读(0)

扫一扫,手机访问

在Ubuntu系统里用Node.js搞自动化,这事儿其实比想象中简单——脚本一写,定时一设,很多重复劳动就能交给机器去跑。下面直接进入正题,从环境准备到实战脚本,一步步拆解。

Ubuntu如何使用Node.js实现自动化任务

1. 安装Node.js

第一步,先确认你的Ubuntu系统里有没有Node.js。要是还没装,几行命令就能搞定:

sudo apt update
sudo apt install nodejs
sudo apt install npm

装完可以用 node -vnpm -v 验证一下版本,确保环境就绪。

2. 创建一个新的Node.js项目

接下来,在工作目录里建一个项目文件夹,初始化一下:

mkdir my-automation-project
cd my-automation-project
npm init -y

这样就有了 package.json,后面安装依赖库就方便多了。

3. 编写自动化脚本

Ja vaScript写起来很灵活,下面两个场景是日常高频需求:定时备份文件和自动发送邮件。

示例1:定时备份文件

node-cron 这个库来调度任务,先安装:

npm install node-cron

然后新建一个 backup.js,写入以下内容:

const cron = require('node-cron');
const fs = require('fs');
const path = require('path');

// 定义备份函数
function backupFile() {
  const sourceDir = '/path/to/source';
  const backupDir = '/path/to/backup';
  const timestamp = new Date().toISOString().replace(/:/g, '-');
  const backupFileName = `backup-${timestamp}.tar.gz`;

  const backupFilePath = path.join(backupDir, backupFileName);
  const command = `tar -czvf ${backupFilePath} ${sourceDir}`;

  fs.exec(command, (error, stdout, stderr) => {
    if (error) {
      console.error(`Error: ${error.message}`);
      return;
    }
    if (stderr) {
      console.error(`Stderr: ${stderr}`);
      return;
    }
    console.log(`Backup created: ${stdout}`);
  });
}

// 每天凌晨2点执行备份
cron.schedule('0 2 * * *', backupFile);

注意:/path/to/source/path/to/backup 要换成你实际的目录路径。这个脚本每天凌晨2点自动打包源目录,并生成带时间戳的压缩文件。

示例2:自动发送电子邮件

想通过Node.js发邮件,nodemailer 是最常用的库,安装:

npm install nodemailer

写一个 sendEmail.js

const nodemailer = require('nodemailer');

// 配置SMTP服务器
const transporter = nodemailer.createTransport({
  service: 'gmail',
  auth: {
    user: 'your-email@gmail.com',
    pass: 'your-password'
  }
});

function sendEmail(subject, text) {
  const mailOptions = {
    from: 'your-email@gmail.com',
    to: 'recipient-email@example.com',
    subject: subject,
    text: text
  };

  transporter.sendMail(mailOptions, (error, info) => {
    if (error) {
      console.error(`Error: ${error.message}`);
      return;
    }
    console.log(`Email sent: ${info.response}`);
  });
}

// 测试发送
sendEmail('Test Email', 'This is a test email sent from Node.js.');

同样,记得替换邮箱地址和密码(生产环境建议用应用专用密码或环境变量)。

4. 运行自动化脚本

脚本写好之后,直接用 node 命令执行:

node backup.js
node sendEmail.js

你会发现,备份脚本会在后台等待定时触发,而邮件脚本会立即发送一封测试邮件。

5. 设置定时任务(可选)

如果不想让脚本常驻进程,也可以借助系统自带的 cron 来调度。编辑当前用户的crontab文件:

crontab -e

然后添加一行,比如每天凌晨2点运行备份脚本:

0 2 * * * /usr/bin/node /path/to/my-automation-project/backup.js

保存退出,系统就会按cron表达式自动执行。这种方式更轻量,适合长期稳定运行的重复任务。

掌握了这几个基础模块,你就可以根据实际需求组合出更复杂的自动化流程——比如监控日志、同步文件、定时爬取数据等等。Node.js生态里还有 fs-extrashelljschokidar 等库能进一步提升效率,这里就不展开细讲了。总之,先把环境搭好,脚本写起来,自动化其实就是这么回事。

本文转载于:https://www.yisu.com/ask/82775118.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注