OCF_HEARTBEAT_PROFTP(7)

✨ NAME ✨

ocf_heartbeat_proftpd β€” it's an OCF Resource Agent compliant FTP script, bestie πŸ’… this is the OCF_HEARTBEAT_PROFTP(7) page and it's literally all about keeping your FTP server alive and iconic.


πŸ¦‹ SYNOPSIS πŸ¦‹

proftpd [start | stop | monitor | meta-data | validate-all]

🌸 DESCRIPTION 🌸

Okay so picture this: this script manages Proftpd in an Active-Passive setup. That's the whole vibe. Two nodes, one is the main character, the other is waiting in the wings, and this agent handles the handoff. Periodt. πŸ‘‘


πŸŽ€ SUPPORTED PARAMETERS πŸŽ€

  • binary β€” the actual Proftpd binary, like where it lives on your filesystem. optional, string, default is "/usr/sbin/proftpd"
  • conffile β€” the Proftpd configuration file name, with the full path, no shortcuts. Example given: "/etc/proftpd.conf". optional, string, default is "/etc/proftpd.conf"
  • pidfile β€” the Proftpd PID file 🫢. Heads up though: the location of the PID file is configured in the Proftpd configuration file itself, so don't get it twisted. optional, string, default is "/var/run/proftpd.pid"
  • curl_binary β€” the absolute path to the curl binary, and this one only matters when you're monitoring with OCF_CHECK_LEVEL greater than zero. optional, string, default is "/usr/bin/curl"
  • curl_url β€” the URL that curl goes and checks, again only when OCF_CHECK_LEVEL is greater than zero. optional, string, default is "ftp://localhost/"
  • test_user β€” the name of the ftp user used for monitoring when OCF_CHECK_LEVEL is greater than zero. optional, string, default is "test"
  • test_pass β€” the password of that ftp user, same deal, monitoring with OCF_CHECK_LEVEL greater than zero. optional, string, and there is no default β€” you gotta bring your own πŸ”₯

πŸ’– SUPPORTED ACTIONS πŸ’–

This resource agent supports the following actions (operations), and yes bestie we're going through every single one:

  • start β€” starts the resource. Suggested minimum timeout: 20s.
  • stop β€” stops the resource. Suggested minimum timeout: 20s.
  • monitor β€” performs a detailed status check. Suggested minimum timeout: 20s. Suggested interval: 60s.
  • monitor β€” performs a detailed status check. Suggested minimum timeout: 20s. Suggested interval: 120s.
  • validate-all β€” performs a validation of the resource configuration. Suggested minimum timeout: 20s.
  • meta-data β€” retrieves resource agent metadata (internal use only, don't touch it, it's not for you πŸ™ˆ). Suggested minimum timeout: 5s.
Not me pointing out that monitor shows up twice up there β€” that's not a typo on my part, that's genuinely how the page lists it. Both entries, both kept, both real. πŸ’€

🧚 EXAMPLE CRM SHELL 🧚

Here's an example config for a proftpd resource using the crm(8) shell:

primitive p_proftpd ocf:heartbeat:proftpd \
  op monitor depth="0" timeout="20s" interval="60s" \
  op monitor depth="10" timeout="20s" interval="120s"

🌈 EXAMPLE PCS 🌈

And here's the same energy for a proftpd resource using pcs(8):

pcs resource create p_proftpd ocf:heartbeat:proftpd \
  op monitor OCF_CHECK_LEVEL="0" timeout="20s" interval="60s" \
  op monitor OCF_CHECK_LEVEL="10" timeout="20s" interval="120s"

πŸ‘‘ SEE ALSO πŸ‘‘


πŸ’œ AUTHOR πŸ’œ

ClusterLabs contributors (see the resource agent source for information about individual authors). Slay, honestly.


That's the whole page, bestie β€” and for the sign-off: this is resource-agents version UNKNOWN, dated 04/08/2026. Go forth and keep that FTP server in its active-passive main character era 🫢✨

πŸ“¦ where this page comes from