Cronjob für Rebalance Plugin auf Raspiblitz mit Core Lightning

Moin. Ich versuche gerade auf meinem Raspiblitz mit Core Lightning einen Cronjob für das Rebalance Plugin zum Laufen zu kriegen.

Hauptproblem ist, dass ich von Linux und Python im Grunde keine Ahnung habe und versuche Stück für Stück was zusammen zu dengeln.

Bspw. möchte ich alle 1h den Befehl cl rebalanceall absetzen. Von Hand in der Konsole funktioniert das wunderbar.

Das Plugin habe ich vorher initialisiert:
cl plugin start /home/bitcoin/cl-plugins-available/plugins/rebalance/rebalance.py

Im Crontab habe ich es mit dem Folgenden probiert:
*/1 * * * * cl rebalanceall
bzw.
@hourly cl rebalanceall

Weil da nichts passierte habe ich mir die Antwort loggen lassen mit:
@hourly cl rebalanceall >> /home/pi/my.log 2>&1

Und da bekomme ich lediglich:
/bin/sh: 1: cl: not found

Hier komme ich partout nicht weiter.
Was ich in dem Kontext von /bin/sh: 1: USER beim Suchen gefunden habe, verstehe ich leider nicht. Hat jemand eine Idee, Tipp, Hinweise auf Dokumentation für micht?

Deine Konsole, die du von Hand benutzt, hat $PATH anders gesetzt als Cron. Im Crontab hilft es daher, den absoluten Pfad zu (in diesem Fall) cl anzugeben: * * * * * /some/where/cl foo. Du kannst den Pfad mit which cl herausfinden.

PS: Cron sollte eigentlich Mails verschicken, wenn etwas nicht klappt. Das Mailsetup auf deinem Knoten scheint aber defekt zu sein (oder du liest die Mails nicht).

2 „Gefällt mir“

Moin,
zusätzlich ist deine Cron-Zeit nicht korrekt.

Jede Stunde wäre so → 0 * * * *
Dein */1 * * * * bedeutet „Jede Minute“

Folgende Seite kann hier helfen: https://crontab.guru

Viel Erfolg.

Gruß
Phil

1 „Gefällt mir“

Ah besten Dank für den Hinweis. Hatte ich vermutlich zum Testen mal runtergesetzt. :slight_smile:

1 „Gefällt mir“

So ich habe das mal ausprobiert:
Anstelle von cl bin ich auf lightning-cli umgestiegen, da es für erstere Kurzschreibweise(?) auch keine Pfadrückgabe gab. Mit dem korrektem Pfad eingefügt stand in meinem Crontab:
*/1 * * * * /usr/local/bin/lightning-cli rebalancereport >> /mnt/hdd/temp/rebalance.log 2>&1
Mit dem Ergebnis, dass im Log eine andere Fehlermeldung auftaucht:
lightning-cli: Moving into '/home/admin/.lightning/bitcoin': No such file or directory
Schauen wir mal was es damit auf sich hat…

Update: With a little help of my friends…
Mir wurde eine Lösung zu gespielt. Ich beschreibe nachher nochmal ausführlicher.
Letztlich wieder ein User/Rechte Problem durch die customisierte Pfadstruktur.
mit type cl bzw. type lightning-cli bekomme ich den Aufruf der hinter dem Alias steht und auf das korrekte Verzeichnis zeigt. Ersetzte ich entsprechend, funktionert das ganze.

Auf jeden Fall besten Dank an dich Carsten fürs beschäftigen mit meinen Problemen :slight_smile:

1 „Gefällt mir“

Ja, man muss beachten, daß sich die Ausführungsumgebung von cron deutlich von der deiner User-Shell unterscheidet. Cron kennt deine Aliase usw. usf. nicht, auch $PATH ist anders gesetzt usw. usf.
Im Grunde genommen ist es schlau, möglichst viel (User, Pfade, Berechtigungen) korrekt im von cron auszuführenden Skript einzustellen, damit es bei Ausführung durch cron nicht rumzickt.

Noch deine Lösung zu zeigen, wär’ schön. Danke im voraus…

1 „Gefällt mir“

Also bei mir funktionierts nun am Ende wie folgt:

Ich habe ein Skript erstellt:
/home/admin/rebalance.sh
Ich bin mir nicht sicher, ob der Speicherort relevant ist, aber auf jeden Fall muss es Schreib-/Leseberechtigung haben, also…
chmod +x rebalance.sh
Im Skript habe ich den Befehl für das Plugin platziert.
sudo -u bitcoin /usr/local/bin/lightning-cli --conf=/home/bitcoin/.lightning/config rebalanceall
Den „echten“ Pfad zum Plugin bekomme ich mit:
type lightning-cli, was in meinem Fall und bei den meisten Standardvarianten des Raspiblitz wohl wie folgt ist:
lightning-cli is aliased to 'sudo -u bitcoin /usr/local/bin/lightning-cli --conf=/home/bitcoin/.lightning/config'

Der Crontab selbst öffnet sich mit crontab -e und darin habe ich den Aufruf des Skripts platziert:
@hourly /home/admin/rebalance.sh
Also stündlicher Aufruf des Skripts, was wiederum das Rebalance-Plugin aufruft.
Bis alles wie gewünscht geklappt hat, habe ich noch die Rückgabe geloggt, um überhaupt die verschiedenen Fehlermeldungen zu Gesicht zu bekommen:
@hourly /home/admin/rebalance.sh >> /mnt/hdd/temp/rebalance.log 2>&1

Der Aufruf des Plugins hätte wohl auch direkt im Crontab geschehen können. Bei einem der vielen Steps zum Ziel bekam ich den Hinweis, dass so einige User-Probleme umgangen werden können und ggf. die notwendigen Rechte für die Interpretation durch Python ermöglicht werden.
Am Ende habe ich ja keine Ahnung und fasse zusammen, was die Leute vom Fach aus meinem Freundeskreis eingeworfen haben :slight_smile:

Mal von der technischen Seite abgesehen:
Das Plugin lasse ich eigentlich nicht mit rebalanceall laufen, sondern mit angepassten Parametern:
rebalanceall min_amount=XXXsat feeratio=0.YY
Damit schaffe ich es die Rebalance-Kosten kontrolliert niedrig zu halten und trotzdem Sats in Kanäle zu bugsieren, die selbst kleine Liquiditätsanhäufungen belohnen.
Ist halt alles Spielerei bei mir, aber schön wenns funktioniert :wink:

2 „Gefällt mir“