timerd Command ausführen

Wünsche, Anträge, Fehlermeldungen
en-total
Einsteiger
Einsteiger
Beiträge: 372
Registriert: Donnerstag 18. Dezember 2003, 18:45

timerd Command ausführen

Beitrag von en-total »

Hi!
Könnte vielleicht jemand den timerd so erweitern, das man auch Shell Commands ausführen kann?

Somit wäre dann z.B. ein Script möglich, welches nach dem einschalten morgens um 6 (als Beispiel) mit pzapit mehrere Kanäle durchgeht, um die EPG Infos zu sammeln, die Mailpostfächer abzufragen, usw.. so das diese Infos dann um 7:00 zum Kaffee zur Verfügung stehen.

also z.B. 06:00 /bin/tralala
09:00 /var/etc/shell1.sh
23:00 /var/shell/backup.sh
usw.. ?
alex2001
Interessierter
Interessierter
Beiträge: 45
Registriert: Dienstag 14. Oktober 2003, 15:18

Beitrag von alex2001 »

Wozu brauchst Du da ein Script. Mit entsprechenden täglichen Umschalt-Timern kannst Du die EPG's zu einer beliebigen Zeit einlesen lassen. Und wenn die Box durch diese Timer erst mal gewckt ist, und der maild läuft, werden auch die Postfächer abgefragt.

Wenn Du die Box nachts im Deep-Standby hast, must Du natürlich zuerst einen Timer "Aufwachen aus Deep-Standby" programieren (glaube ich wenigstens, hab noch nicht ausprobiert, ob ein Umschalttimer die Box auch aus dem Deep-Standby weckt) :wink:
en-total
Einsteiger
Einsteiger
Beiträge: 372
Registriert: Donnerstag 18. Dezember 2003, 18:45

Beitrag von en-total »

Hi Alex,
also das waren ja nur Beispiele. Ich würde zum Beispiel über nacht meine Termine mit der Box abgleichen wollen, usw.. Also ShellScripts ausführen können. Das wäre dann mit einfachen mitteln ein Vollwertiger Ersatz für eine crontab. TimerD läuft ja bereits als Daemon, sogar im Deep Standby.

Ich gehe mal ins Detail:
Abgleich meiner tuxcal.list vom Server
Holen der Nummern aus meinem isdn.log, um zu sehen wer anrief
usw usw..
Mir fallen da jetzt auch nicht tausende von Dingen ein, aber es wäre sicherlich kein großes Problem das zu implementieren, wenn man es kann, und es würde die Box um eine echte crontab Funktion bereichern. Es muß nicht jeder nutzen, und eigentlich mag ich solche Gegenfragen: "Wozu brauchst du Scripte" nicht besonders. Es gibt etliche Anwendungsmöglichkeiten für eine cron.

Nett wäre auch noch, wenn man die Box aus dem Deep StandBy in den normalen StandBy holen könnte, so daß der TV nicht angeht. Ansonsten wird man (jeh nach lautstärke des gestrigen abends) ja des nachts wach :D
Dirch
Senior Member
Beiträge: 394
Registriert: Freitag 9. November 2001, 00:00

Beitrag von Dirch »

also ich find die idee nicht wirklich schlecht, obwohl es nicht brauche . . .

aber es sollte reichen ein neues TimerEvent zu erzeugen das halt nen externes programm startet. vielleicht hat ja einer lust das einzubauen, ich hab leider gerade nicht die zeit

dirch
en-total
Einsteiger
Einsteiger
Beiträge: 372
Registriert: Donnerstag 18. Dezember 2003, 18:45

Beitrag von en-total »

Dirch hat geschrieben:also ich find die idee nicht wirklich schlecht, obwohl es nicht brauche . . .
Danke :oops:
Wie gesagt - die Ideen kommen sicher, wenn die Funktion erstmal da ist. Möglichkeiten gibt es etliche. das regt vielleicht wieder einige kreative Toolauthoren an. :P
Dirch hat geschrieben: aber es sollte reichen ein neues TimerEvent zu erzeugen das halt nen externes programm startet.

Hmm.. dann wäre nur ein "external event" möglich?

Also ich dachte ja so.. der Timer hat doch bereits etliche Events, wobei immer Funktion "X" ausgeführt wird. wakeUp, Erinnerung, usw.. Theoretisch mußte das möglich sein, zu Uhrzeit XYZ das command ABC zu starten. Naja, lasse mich mal überraschen :D
Dirch
Senior Member
Beiträge: 394
Registriert: Freitag 9. November 2001, 00:00

Beitrag von Dirch »

en-total hat geschrieben:
Dirch hat geschrieben: aber es sollte reichen ein neues TimerEvent zu erzeugen das halt nen externes programm startet.

Hmm.. dann wäre nur ein "external event" möglich?

Also ich dachte ja so.. der Timer hat doch bereits etliche Events, wobei immer Funktion "X" ausgeführt wird. wakeUp, Erinnerung, usw.. Theoretisch mußte das möglich sein, zu Uhrzeit XYZ das command ABC zu starten. Naja, lasse mich mal überraschen :D
aehh jein :)

also im prinzip hast du es richtig verstanden, es gibt schon verschiedene events wie zapto, record, etc. was noch fehlt ist ein ExecuteEvent dem man dann einen command und die parameter dafuer mitgibt. Welcher command/befehl/script das dann ist is egal.

Das Event koennte z.B. so aussehen:

Code: Alles auswählen

class CTimerEvent_Execute : public CTimerEvent
{
        public:
                char command[COMMAND_MAXLEN];
                char parameter[COMMAND_MAXLEN];

                CTimerEvent_Execute( time_t announceTime, time_t alarmTime, char* msg, CTimerd::CTimerEventRepeat evrepeat = CTimerd::TIMERREPEAT_ONCE);                 
                CTimerEvent_Execute(CConfigFile *config, int iId);
                virtual void fireEvent();
                virtual void announceEvent();
                virtual void stopEvent();
                virtual void saveToConfig(CConfigFile *config);
};
siehe timermanager.h
en-total
Einsteiger
Einsteiger
Beiträge: 372
Registriert: Donnerstag 18. Dezember 2003, 18:45

Beitrag von en-total »

Dirch hat geschrieben: also im prinzip hast du es richtig verstanden, es gibt schon verschiedene events wie zapto, record, etc. was noch fehlt ist ein ExecuteEvent dem man dann einen command und die parameter dafuer mitgibt. Welcher command/befehl/script das dann ist is egal.
Ahja, dann OK so. Das meinte ich dann auch gesagt zu haben :D
Das Event koennte z.B. so aussehen:

Code: Alles auswählen

class CTimerEvent_Execute : public CTimerEvent
{
        public:
                char command[COMMAND_MAXLEN];
                char parameter[COMMAND_MAXLEN];

                CTimerEvent_Execute( time_t announceTime, time_t alarmTime, char* msg, CTimerd::CTimerEventRepeat evrepeat = CTimerd::TIMERREPEAT_ONCE);                 
                CTimerEvent_Execute(CConfigFile *config, int iId);
                virtual void fireEvent();
                virtual void announceEvent();
                virtual void stopEvent();
                virtual void saveToConfig(CConfigFile *config);
};
siehe timermanager.h
Auha! Na, vielleicht erbarmt sich ja jemand. Hmm.. i h überlege mir mal ein gutes Beispiel für ne Anwendung, inzwischen :P
en-total
Einsteiger
Einsteiger
Beiträge: 372
Registriert: Donnerstag 18. Dezember 2003, 18:45

Beitrag von en-total »

Das ging jetzt Fix, weil meine Frau vor dem TV gerade meckerte, ob ich nicht den Tuxmail abschalten könne. :D

Also eine Anwendung wäre zum Beispiel zur "PrimeTime", also 20:00, den Tuxmail killen. Klar, kann man manuell machen, aber wer denkt da ständig dran? Tuxmail könnte man somit zeitgesteuert arbeiten lassen.

Hmm.. OK, ist ein lames Beispiel :oops: