Cron Job mit Parameter Übergabe an ein script

Started by Matscher_Leipzig, May 01, 2025, 09:51:00 PM

Previous topic - Next topic
Hallo zusammen,

ich bin neu hier im Forum und freu mich das ich hier sein darf. Ich arbeite in der IT und habe bereits erste Erfahrungen mit der OPNSense gesammelt. Leider komme ich wirklich nicht weiter...3h mit der KI chatten hilft hier auch wenig.

Problem: ICh will die Netze der Kinder von der Zeit her steuern. Soweit auch kein Problem mit Schedules. Doof nur, das beim streamen die states erhalten bleiben. Also müssen die states weg. Soweit so klar.Wenn man es richtig machen will, pflegt man das auf der GUI im Cron-Bereich.

Also fix ne neue action angelegt und zwar hier:
/usr/local/opnsense/service/conf/actions.d => actions_states.conf


[elli]
command:/usr/local/bin/bash /usr/local/opnsense/scripts/custom/state_del.sh %s
parameters:kind
type:script_output
message:kill states %s
description:kill states Amazon

[luisa]
command:/usr/local/bin/bash /usr/local/opnsense/scripts/custom/state_del.sh %s
parameters:kind
type:script_output
message:kill states %s
description:kill states Amazon

und ein Script gebaut und hier abgelegt: /usr/local/opnsense/scripts/custom =>state_del.sh

#!bin/bash

KIND=$1

# Debugging: Die Parameter anzeigen
echo "Erhaltener Parameter: $KIND"


# Auswerten der Kinder
if [ "$KIND" = "elli" ]; then
    echo "$(date) Starte Prozess mit Wert: $KIND" >> /var/log/reset_states.log
    pfctl -k 10.10.20.12/32 -k 0.0.0.0/0
elif [ "$KIND" = "luisa" ]; then
    echo "$(date) Starte Prozess mit Wert: $KIND" >> /var/log/reset_states.log
    pfctl -k 10.10.20.11/32 -k 0.0.0.0/0
elif [ "$KIND" = "samsung" ]; then
    echo "$(date) Starte Prozess mit Wert: $KIND" >> /var/log/reset_states.log
    pfctl -k 10.10.20.26/32 -k 0.0.0.0/0
else
    echo "wrong Parameter: $KIND"
    echo "Bitte nutze 'elli' oder 'luisa' als Parameter."
fi

# Abschlussnachricht
echo "Skript beendet."
----------------------------------------------------------

das Script für sich allein funktioniert einwandfrei :-)

Im Zusammenspiel mit cron wird der Wert '%s' an das script übergeben, was völliger Quatsch ist.

Ich brauch dringend jemanden der mir sagt, wo die Nadel im Heuhaufen liegt ;-)

DANKE !
Matthias






Du brauchst nur eine Action, die müsste so aussehen:

[kill_states]
command:/usr/local/bin/bash /usr/local/opnsense/scripts/custom/state_del.sh
parameters:%s
type:script_output
message:kill states %s
description:kill states Amazon

Und Du bestimmst den Wert des Parameters, indem Du in der Cron-Job-Definition neben der Zeit einen Wert für Parameter einträgst, z.B. "elli" oder "luisa".
Intel N100, 4 x I226-V, 16 GByte, 256 GByte NVME, ZTE F6005

1100 down / 800 up, Bufferbloat A+