AutomationFlowsSlack & Telegram › Monitor Remote Server File Integrity with SSH and Slack Alerts

Monitor Remote Server File Integrity with SSH and Slack Alerts

ByMarth - Business Automation @marth on n8n.io

This workflow efficiently performs a scheduled file integrity audit.

Cron / scheduled trigger★★★★☆ complexity8 nodesSshSlack
Slack & Telegram Trigger: Cron / scheduled Nodes: 8 Complexity: ★★★★☆ Added:

This workflow corresponds to n8n.io template #6814 — we link there as the canonical source.

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "id": "Y4SJP07CnkFr6gvM",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "Automated File Integrity Check with Slack",
  "tags": [],
  "nodes": [
    {
      "id": "a56ca493-a82b-45db-bc81-90c9d9368646",
      "name": "Scheduled Check",
      "type": "n8n-nodes-base.cron",
      "position": [
        -416,
        352
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "334491fa-dfe6-4502-b704-1f852639b2cc",
      "name": "List Files & Checksums",
      "type": "n8n-nodes-base.code",
      "position": [
        -192,
        352
      ],
      "parameters": {
        "jsCode": "// Loop over input items and add a new field called 'myNewField' to the JSON of each one\nfor (const item of $input.all()) {\n  item.json.myNewField = 1;\n}\n\nreturn $input.all();"
      },
      "typeVersion": 1
    },
    {
      "id": "a8f2ce95-e2af-45d7-a068-870f04d09f66",
      "name": "Get Remote File Checksum",
      "type": "n8n-nodes-base.ssh",
      "position": [
        32,
        352
      ],
      "parameters": {
        "command": "sha256sum {{ $json.path }}"
      },
      "typeVersion": 1
    },
    {
      "id": "e2feef20-0895-4d3c-9dac-053766f4a298",
      "name": "Checksums Match?",
      "type": "n8n-nodes-base.if",
      "position": [
        256,
        352
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "28ac7db9-54aa-45c7-a711-df5c21e2f73f",
      "name": "End Workflow",
      "type": "n8n-nodes-base.noOp",
      "position": [
        480,
        448
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "71ef0e9f-4a7f-4c09-9511-4775df30a1cd",
      "name": "Send Alert",
      "type": "n8n-nodes-base.slack",
      "position": [
        480,
        256
      ],
      "parameters": {
        "text": "=\ud83d\udea8 *File Integrity Alert!* \ud83d\udea8\\nFile: *{{ $json.path }}* has been modified!\\nKnown Checksum: *{{ $json.knownChecksum }}*\\nCurrent Checksum: *{{ $json.stdout.split(' ')[0] }}*",
        "user": {
          "__rl": true,
          "mode": "id",
          "value": "[YOUR_SECURITY_ALERT_CHANNEL_ID]"
        },
        "select": "user",
        "otherOptions": {}
      },
      "credentials": {
        "slackApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.3
    },
    {
      "id": "47a05b08-78a3-4bfa-8a98-bff0c883b5e8",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -464,
        208
      ],
      "parameters": {
        "width": 1152,
        "height": 368,
        "content": "## Flow"
      },
      "typeVersion": 1
    },
    {
      "id": "ac402d8d-8588-4b51-a1dd-e7ea24ded695",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -464,
        608
      ],
      "parameters": {
        "color": 5,
        "width": 1152,
        "height": 352,
        "content": "# \ud83d\udea8 Automated File Integrity Check \ud83d\udee1\ufe0f\n\n* **Problem Solved:**\n    Sebagai seorang *developer AI Agent* yang fokus pada solusi untuk bisnis kecil dan menengah, Anda tahu bahwa sistem penting seperti server sering kali menjadi sasaran. Perubahan yang tidak terduga pada file-file kunci (seperti konfigurasi server atau skrip penting) dapat menjadi tanda awal dari peretasan, malware, atau aktivitas berbahaya. Mengaudit integritas file-file ini secara manual sangat tidak praktis dan tidak dapat diandalkan, terutama bagi tim IT yang kecil.\n\n* **Solution Overview:**\n    *Workflow n8n* ini menawarkan solusi sederhana namun vital untuk **pemantauan integritas file**. Otomatisasi ini secara teratur terhubung ke server remote Anda, menghitung *checksum* (misalnya, SHA256) dari file-file penting yang Anda tentukan, dan membandingkannya dengan nilai yang telah Anda konfirmasi sebelumnya. Jika ada perubahan sekecil apa pun pada file (yang ditunjukkan oleh *checksum* yang tidak cocok), tim Anda akan menerima **notifikasi instan di Slack**. Ini adalah lapisan pertahanan dasar yang efektif yang membantu mendeteksi kompromi lebih awal.\n\n* **For Whom:**\n    Otomatisasi ini sangat ideal untuk:\n    * **Tim IT dan DevOps:** Untuk memantau server produksi atau pengembangan secara otomatis.\n    * **Penyedia Layanan Managed Hosting:** Untuk menawarkan fitur keamanan tambahan kepada klien mereka.\n    * **Admin Sistem:** Untuk menghemat waktu dan memastikan integritas file-file sistem dan konfigurasi yang kritis.\n    * **Setiap Bisnis (terutama UMKM):** Yang mengelola server sendiri dan membutuhkan alat deteksi dini yang sederhana namun kuat untuk melindungi infrastruktur mereka.\n\n---\n\n### How It Works: The 5-Node Security Flow\n\nAlur kerja ini secara efisien melakukan audit integritas file yang terjadwal.\n\n1.  **Scheduled Check (Cron Node):**\n    * **Fungsi:** Ini adalah pemicu utama. Node ini menjadwalkan alur kerja untuk berjalan pada interval yang telah ditentukan, misalnya, setiap hari pada pukul 3 pagi.\n    * **Proses:** Node `Cron` secara otomatis memulai alur kerja sesuai jadwal, memastikan pemeriksaan integritas file dilakukan secara konsisten tanpa intervensi manual.\n\n2.  **List Files & Checksums (Code Node):**\n    * **Fungsi:** Node ini berfungsi sebagai database statis Anda. Di sini, Anda menentukan file mana yang ingin Anda pantau dan nilai *checksum* \"baik\" yang telah Anda verifikasi sebelumnya untuk setiap file.\n    * **Proses:** Node ini mengonfigurasi jalur file dan *checksum* yang valid ke dalam sebuah array yang akan diproses oleh node-node berikutnya. Ini memisahkan logika dari data, membuatnya mudah untuk diperbarui.\n\n3.  **Get Remote File Checksum (SSH Node):**\n    * **Fungsi:** Node ini terhubung ke server remote Anda melalui SSH untuk mendapatkan *checksum* file yang sedang dipantau.\n    * **Proses:** Node ini menjalankan perintah seperti `sha256sum /path/to/file` pada server. Hasilnya (yaitu, *checksum* saat ini) kemudian ditangkap dan diteruskan ke node berikutnya.\n\n4.  **Checksums Match? (If Node):**\n    * **Fungsi:** Node ini berfungsi sebagai logika deteksi inti. Node ini membandingkan *checksum* yang baru didapat dari server dengan *checksum* \"baik\" yang telah Anda simpan di node `Code`.\n    * **Proses:** Jika kedua nilai *checksum* **tidak sama**, itu menandakan ada perubahan pada file, dan alur kerja akan mengalihkan jalurnya ke node pemberitahuan. Jika cocok, alur kerja akan berakhir dengan aman.\n\n5.  **Send Alert (Slack Node) / End Workflow (No-Op Node):**\n    * **Fungsi:** Node-node ini adalah respons akhir dari alur kerja.\n    * **Proses:** Jika *checksum* tidak cocok, node `Slack` akan mengirimkan peringatan terperinci yang berisi informasi tentang file yang diubah, *checksum* yang diharapkan, dan *checksum* yang ditemukan. Jika *checksum* cocok, alur kerja akan berakhir tanpa notifikasi, menghemat waktu dan perhatian tim Anda.\n\n---\n\n### Cara Mengatur (Setup Steps)\n\nMenerapkan monitor keamanan penting ini di n8n sangatlah mudah.\n\n1.  **Siapkan Kredensial & Server:**\n    * **Kredensial SSH:** Siapkan **SSH credential** di n8n dengan informasi server Anda (hostname, port, user, dan kunci privat atau kata sandi). Pastikan pengguna SSH memiliki izin untuk menjalankan `sha256sum` pada file-file yang ingin Anda pantau.\n    * **Kredensial Slack:** Siapkan **Slack credential** di n8n dan catat **Channel ID** dari saluran pemberitahuan keamanan Anda (misalnya, `#security-alerts`).\n    * **Dapatkan *Checksum*:** **Ini adalah langkah paling penting.** Jalankan perintah `sha256sum [file_path]` secara manual di server Anda untuk setiap file yang ingin Anda pantau. Salin dan simpan nilai *checksum* yang dihasilkan\u2014ini adalah *checksum* \"baik\" yang akan Anda gunakan sebagai referensi.\n\n2.  **Impor Alur Kerja JSON:**\n    * **Impor:** Di n8n, buat alur kerja baru dan pilih \"Import from JSON.\" Tempelkan kode JSON yang disediakan di respons sebelumnya.\n\n3.  **Konfigurasi Node:**\n    * **Scheduled Check (Cron):** Atur jadwal sesuai preferensi Anda (misalnya, setiap hari pukul 03:00 pagi).\n    * **List Files & Checksums (Code):** Buka node ini dan **edit array `filesToCheck`**. Masukkan jalur file server Anda yang sebenarnya dan tempelkan *checksum* \"baik\" yang Anda dapatkan secara manual di langkah 1.\n    * **Get Remote File Checksum (SSH):** Pilih **SSH credential** Anda.\n    * **Send Alert (Slack):** Pilih **Slack credential** Anda. Ganti `YOUR_SECURITY_ALERT_CHANNEL_ID` dengan **Channel ID** Anda yang sebenarnya.\n\n4.  **Uji & Aktifkan:**\n    * **Uji Manual:** Jalankan alur kerja secara manual. Verifikasi bahwa alur kerja berhasil terhubung ke server dan memeriksa file tanpa mengirimkan peringatan (asumsi file tidak berubah).\n    * **Verifikasi:** Jika Anda ingin menguji peringatan, ubah salah satu file di server secara manual dan jalankan lagi. Periksa saluran Slack Anda untuk memastikan peringatan dikirimkan dengan benar.\n    * **Aktifkan:** Setelah Anda yakin semuanya berfungsi, aktifkan alur kerja. Sekarang, n8n akan secara otomatis mengaudit integritas file-file penting Anda sesuai jadwal.\n\n---"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "4489311f-ff4b-4df7-8ac6-f378f84c5361",
  "connections": {
    "Scheduled Check": {
      "main": [
        [
          {
            "node": "List Files & Checksums",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Checksums Match?": {
      "main": [
        [
          {
            "node": "Send Alert",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "End Workflow",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "List Files & Checksums": {
      "main": [
        [
          {
            "node": "Get Remote File Checksum",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Remote File Checksum": {
      "main": [
        [
          {
            "node": "Checksums Match?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

Credentials you'll need

Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.

Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

This workflow efficiently performs a scheduled file integrity audit.

Source: https://n8n.io/workflows/6814/ — original creator credit. Request a take-down →

More Slack & Telegram workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

Slack & Telegram

Smart Dependency Update Tracker. Uses ssh, slack. Scheduled trigger; 15 nodes.

Ssh, Slack
Slack & Telegram

This workflow fully automates your team's daily standup process using Slack for communication, Notion for structured data storage, and Redis for real-time session management.

Notion, Slack, Redis
Slack & Telegram

This workflow is an automated employee time tracking and reporting system that monitors weekly work hours via TMetric, then delivers personalized summaries directly to each team member on Slack. It co

HTTP Request, Item Lists, Data Table +1
Slack & Telegram

Ts Order Batch. Uses airtable, slack. Scheduled trigger; 38 nodes.

Airtable, Slack
Slack & Telegram

Import Productboard Notes Companies And Features Into Snowflake. Uses stickyNote, httpRequest, splitOut, snowflake. Scheduled trigger; 35 nodes.

HTTP Request, Snowflake, Slack