Allgemeine Fragen zu Startskripten und cron

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • Allgemeine Fragen zu Startskripten und cron

      Guude @all,

      vorab, mir geht es nur ums Skripting und nicht um Plugins oder ein GUI, indem ich nachfolgende Einstellungen auch vornehmen könnte.

      DM800 mit v.2.8...
      Der Cron-Daemon ist ja bereits on Board, jedoch weiß ich nicht wie ich diesen beim Start der DM ebenfalls starten kann.
      Reicht ein "touch" einer bestimmten Datei, oder werden z.B. auch "User"-Startskripte berücksichtigt, oder muss ich direkt an die "rcS" oder an ein anderes Startskript?

      Ein "crontab -e" liefert "crontab: cannot change dir to /var/spool/cron/crontabs: No such file or directory".
      Ich bin nicht so cron-erfahren. Ist es ausreichend dieses Verzeichnis zu erstellen und ein "root"-File darin anzulegen, oder muss ich noch etwas berücksichtigen, bzw. alles ganz anders wie gedacht machen?


      Hintergründe - falls es jemanden interessiert...
      Ich habe einen Bash-DynDNS-Updater geschrieben, den ich per cron auch auf der DM testen wollte und des Weiteren möchte ich ein Skript erstellen, dass beim Booten ausgeführt wird und die CCcam.cfg manipuliert, evtl. später auch per cron.
    • RE: Allgemeine Fragen zu Startskripten und cron

      hi,

      glaube du nimmst den cron von der busybox, ist mir auch passiert.


      mach mal ne ipkg update und dann nen ipkg install cron, dann wird alles angelegt.


      regards
    • danke für die Info ;)

      Wie schaut es jedoch mit Startskripten aus?
      "*.emu"-Dateien in /usr/script werden anscheinend beim Start berücksichtigt, aber wie sieht es mit anderen Skripten aus, gibt es da auch eine Möglichkeit zum "Einhängen"?

      Wo macht es am meisten Sinn, eigenen Code beim Starten einzuhängen, quasi analog zur Neutrino "start"?


      PS: Ich möchte nicht unbedingt "*.emu" einhängen, wenn es nichts mit einem EMU zu tun hat und falls es überhaupt funktionieren würde.
    • ich mache meine fernbedienungsumschaltung z.b. in der etc/init.d/bootup

      leider haben wir nicht sowas wie ein user.start (bisher), die z.b. in der bootup aufgerufen wird und wo der user "seine" sachen starten kann *fg
    • besten Dank Joe, jedoch wäre es wünschenswert, wenn "User"-Start-/Stop-Skripte zukünftig vorgesehen werden könnten; mit "*.emu" geht`s ja auch ;)

      Nachfolgend eine Anpassung meinerseits, falls es von Interesse ist...

      Shell-Script

      1. #!/bin/sh
      2. # **********************************************************
      3. # CCcam Config Changer / CCcamCfgChanger.sh
      4. #
      5. # Warum?! **************************************************
      6. # Weil evtl. mehrere Cardreader am MpCS/OSCam betrieben und per AU (AutoUpdate) versorgt
      7. # werden muessen. Ein AU mehrerer Karten klappt momentan leider nicht zuverlaessig, wenn diese
      8. # von nur einer Connection kommen.
      9. # In den CCcam.cfg's koennen unterschiedliche MpCS-/OSCcam-Connections eingetragen werden, die
      10. # dann z.B. per Cron-Job oder beim Starten wechseln.
      11. #
      12. # Bsp. mpcs/oscam.user:
      13. # [account]
      14. # User = Smargo
      15. # AU = smargo
      16. # Group = 1,2
      17. # [account]
      18. # User = MasterCRD
      19. # AU = MasterCRD
      20. # Group = 1,2
      21. #
      22. # Bsp. CCcam_1.cfg:
      23. # N: 192.168.0.1 4711 Smargo dbox2 01 02 03 04 05 06 07 08 09 10 11 12 13 14
      24. #
      25. # Bsp. CCcam_2.cfg
      26. # N: 192.168.0.1 4711 MasterCRD dbox2 01 02 03 04 05 06 07 08 09 10 11 12 13 14
      27. #
      28. # Setup: ***************************************************
      29. # - Kopiere das Skript z.B. nach /var/bin und chmode dieses 755.
      30. # - Kopiere Deine "komplette" CCcam.cfg ZWEIMAL in dasselbe Verzeichnis, indem sich auch
      31. # die CCcam.cfg befindet und bennene diese nach CCcam_1.cfg und CCcam_2.cfg.
      32. # - Passe die Variablen "unten" im "USER-SETUP" an.
      33. #
      34. # Hinweise: ************************************************
      35. # - Nicht ueber die eine oder andere Syntax wundern, das Skript wurde mit aktuellem
      36. # Ubuntu (jaunty), Neutrino (Sportster) und Enigma (Newnigma) getestet.
      37. # - Kontrolle:
      38. # Das Skript schreibt eine Logdatei, falls eingestellt, und diese kann z.B. per
      39. # tail /tmp/CCcamCfgChanger.log
      40. # ...abgefragt werden. Wenn die Logdatei 10kB ueberschreitet, wird diese neu erstellt.
      41. #
      42. # Ausfuehrungs-Beispiele: **********************************
      43. # - Um bei jedem Neustart des Receivers die Config zu wechseln ist nur folgender Eintrag in einem
      44. # Start-Skript notwendig:
      45. # /var/bin/CCcamCfgChanger.sh changeAuto
      46. # ...das funktioniert selbstverstaendlich auch per Cron-Job, z.B. alle 4-6 Stunden.
      47. # - Wenn Du evtl. eigene Skripte davorsetzt, kannst Du die Config auch gezielt wechseln:
      48. # /var/bin/CCcamCfgChanger.sh changeTo 4
      49. # ...wuerde die CCcam_4.cfg laden.
      50. #
      51. # ##########################################################
      52. # USER-SETUP ***********************************************
      53. # Pfad zur CCcam.cfg OHNE Slash am Ende!
      54. cfgPath='/var/keys'
      55. # Logdatei (optional)
      56. logFile='/tmp/CCcamCfgChanger.log'
      57. # ENDE USER-SETUP ******************************************
      58. # ##########################################################
      59. # private vars
      60. msg=''
      61. cfg="$cfgPath/CCcam.cfg"
      62. case "$1" in
      63. changeTo)
      64. # change to CCcam_"$2".cfg
      65. if [ ! -z "$2" -a -s $cfgPath'/CCcam_'$2'.cfg' ]; then
      66. cat $cfgPath'/CCcam_'$2'.cfg' > $cfg
      67. msg="$cfg erfolgreich mit $cfgPath/CCcam_$2.cfg ersetzt."
      68. else
      69. msg='Ungueltiger Parameter oder ungueltige CCcam_n.cfg-Quelle!'
      70. fi
      71. ;;
      72. changeAuto)
      73. # change between CCcam_1.cfg and CCcam_2.cfg
      74. if [ ! -s $cfgPath'/CCcam_1.cfg' ]; then
      75. msg="$cfgPath/CCcam_1.cfg existiert nicht!"
      76. else
      77. cfgCS=`md5sum $cfg | cut -d " " -f 1`
      78. cfg1CS=`md5sum $cfgPath'/CCcam_1.cfg' | cut -d " " -f 1`
      79. if [ "$cfgCS" = "$cfg1CS" ]; then
      80. nCfg="2"
      81. else
      82. nCfg="1"
      83. fi
      84. if [ ! -s $cfgPath'/CCcam_'$nCfg'.cfg' ]; then
      85. msg="$cfgPath/CCcam_$nCfg.cfg existiert nicht!"
      86. else
      87. cat $cfgPath'/CCcam_'$nCfg'.cfg' > $cfg
      88. msg="$cfg erfolgreich mit $cfgPath/CCcam_$nCfg.cfg ersetzt."
      89. fi
      90. fi
      91. ;;
      92. *)
      93. msg='Ungueltiger Parameter!'
      94. ;;
      95. esac
      96. if [ ! -z "$logFile" ]; then
      97. lfs=0
      98. if [ -s $logFile ]; then
      99. lfs=`wc -c $logFile | sed "s/^\s*//g" | cut -d " " -f1`
      100. fi
      101. if [ ! -e $logFile -o $lfs -gt 10240 ]; then
      102. echo "" > $logFile
      103. fi
      104. echo $(date "+%d.%m.%Y %H:%M:%S")": $msg" >> $logFile
      105. else
      106. echo "$msg"
      107. fi
      108. exit 0
      Alles anzeigen


      Autostart Newnigma2:

      Quellcode

      1. if [ -x /usr/script/CCcamCfgChanger.sh ]; then
      2. echo "checking /etc/init.d/bootup..."
      3. if grep -q "CCcamCfgChanger" /etc/init.d/bootup >/dev/null; then
      4. echo "CCcamCfgChanger is already installed"
      5. else
      6. echo "installing CCcamCfgChanger..."
      7. echo "/usr/script/CCcamCfgChanger.sh changeAuto" >> /etc/init.d/bootup
      8. if grep -q "CCcamCfgChanger" /etc/init.d/bootup >/dev/null; then
      9. echo "CCcamCfgChanger succesfully installed :)"
      10. else
      11. echo "could not install CCcamCfgChanger"
      12. fi
      13. fi
      14. else
      15. echo "/usr/script/CCcamCfgChanger.sh IS NOT INSTALLED!"
      16. fi
      Alles anzeigen
    • Original von MailMan
      besten Dank Joe, jedoch wäre es wünschenswert, wenn "User"-Start-/Stop-Skripte zukünftig vorgesehen werden könnten; mit "*.emu" geht`s ja auch ;)


      du rennst bei mir offene türen ein

      *duck*
    • Original von arianebox
      Original von MailMan
      besten Dank Joe, jedoch wäre es wünschenswert, wenn "User"-Start-/Stop-Skripte zukünftig vorgesehen werden könnten; mit "*.emu" geht`s ja auch ;)


      du rennst bei mir offene türen ein

      *duck*


      bei .emu wird nur ein link im entsprechenden runlevel angelegt *.emu kann aber keine 2 links
      wer sowas haben will soll sich doch an den linux std halten mit init.d und link vom runlevel *find*
      » time to say goodbye «

      Konfuzius sagt:
      Erst wenn eine Mücke auf deinen Hoden landet wirst du lernen Probleme ohne Gewalt zu lösen.
    • um das zu präzisieren:

      ich mache also ein script in /etc/init.d, z.b.: userstart.sh (755)

      danach im telnet
      "ln -sf /etc/init.d/userstart.sh /etc/rc3.d/S99userstart"

      das einzige was dann noch fehlt wäre,
      daß der config-saver einzelne scripte in /etc/init.d scripte mitsichert und auch links aus /etc/rc3.d
      dann erspart man sich diese prozedur beim nächsten flashen.
    • Moin,

      das einzige was dann noch fehlt wäre, daß der config-saver einzelne scripte in /etc/init.d scripte mitsichert und auch links aus /etc/rc3.d dann erspart man sich diese prozedur beim nächsten flashen.



      Oder du baust dir nen .ipk der das für dich dann macht.

      regards
    • Original von arianebox
      ja klar.
      von dau-sicherem image entfernen wir uns immer weiter - oder denkst du, das kann jeder user aus dem FF?

      dabei war die anfangsfrage nach einem einfachen script automatisch aufrufen.



      Hejo,

      du hast Recht, habe überlesen in welchem Foren Bereich wir sind.

      Was man machen kann ist sein eigenes script( habs ma test genannt) nach etc/init.d/ packen und dann per telnet

      Quellcode

      1. root@dm8000:~# update-rc.d test defaults 88
      2. Adding system startup for /etc/init.d/test ...
      3. /etc/rc2.d/S88test -> ../init.d/test
      4. /etc/rc3.d/S88test -> ../init.d/test
      5. /etc/rc4.d/S88test -> ../init.d/test
      6. /etc/rc5.d/S88test -> ../init.d/test
      7. /etc/rc0.d/K88test -> ../init.d/test
      8. /etc/rc1.d/K88test -> ../init.d/test
      9. /etc/rc6.d/K88test -> ../init.d/test


      Dann werden die links automatisch gemacht






      regards

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Lusche ()