Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

php script unter linux als daemon

Frage Linux Linux Tools

Mitglied: Dambi

Dambi (Level 1) - Jetzt verbinden

22.02.2006, aktualisiert 12.03.2006, 7395 Aufrufe, 10 Kommentare

Ich habe ein PHP Script und will jetzt das meine Linux Maschine dieses Script immer nach 5 minuten ausführt. wie kann ich das machen, dass er erstens das php script ausführt und zweitens dass der server das im hintergrund immer macht, sprich als daemon.


ich habe gerade gesehen, dass man php scripts in shells integrieren kann. wie muss ich denn das machen? denn ich glaube ein shell als daemon einzurichten ist eifacher!

wäre froh, wenn mir jemand weiterhelfen könnte, da das ein Teil meiner Abschlussprüfung ist und ich das brauche.

falls das noch zu wenige informationen sind, dann meldet euch einfach bei mir ich gebe natürlich auch gerne noch mehr infos! ich weiss eifach nicht was ihr alles braucht damit das geht. also verzeiung das ich nicht infos geben kann aber ich weiss ja nicht was man braucht und wie es geht


danke vielmals


gruss dambi
Mitglied: heyko
22.02.2006 um 16:08 Uhr
DU benötigst php-cli um Scripte per Shell ausführen zu können. Und dann trägst du das Script als Crontab in Form von

nohup php /pfad/zu/deinem/script.php &

ein.

Schon wird es regelmäßig gestartet und die Ausgabe im nohup.log gespeichert.
Bitte warten ..
Mitglied: Dambi
22.02.2006 um 16:17 Uhr
ich bin leider nicht der linux crack

was heisst:

Und dann trägst du das Script als Crontab in Form von

nohup php /pfad/zu/deinem/script.php &

ein.
???????

wie wo was muss ich das machen ?

sorry für meine fragen aber wie schon gesagt bin nicht der linux crack

danke schon mal!!!!!!!
Bitte warten ..
Mitglied: cykes
22.02.2006 um 16:29 Uhr
@heyko, ich glaub das "nohup" am Anfang kann man sich in einem Cron-Job irgendwie sparen,
oder? Ich kenn mich ned so mit PHP aus, aber ganz allgemein is das in nem crontab doch
überflüssig!?


Gruss

cykes
Bitte warten ..
Mitglied: Guenni
22.02.2006 um 16:51 Uhr
@Dambi

Hi,

unter http://www.sequenz.ch/blog/archive/2003/12/07/crontab-beispiel.html

findest du eine Beschreibung des Formats einer Cron-Job-Datei, ein paar Beispiele
und wie du einen Cron-Job anlegst.

Gruß
Günni
Bitte warten ..
Mitglied: heyko
22.02.2006 um 17:00 Uhr
@heyko, ich glaub das "nohup" am
Anfang kann man sich in einem Cron-Job
irgendwie sparen,
oder? Ich kenn mich ned so mit PHP aus, aber
ganz allgemein is das in nem crontab doch
überflüssig!?


Gruss

cykes


naja eigentlich hast du recht dann aber

<font class="code">
php /pfad/zum/script.php &> /dev/null
</font>

damit die ausgabe verschwindet und man nicht diese nervigen cronmails bekommen

und @Dambi

die /etc/cron/crontab datei öffnen und folgende zeile hinzufügen

<font class="code">
*/5 * * * * benutzername php /pfad/zum/script.php &> /dev/null
</font>
Bitte warten ..
Mitglied: Dambi
23.02.2006 um 14:16 Uhr
und wie wird der zeitinterwall eingestellt??? ich will das es alle 5 minuten das script wieder ausführt!

danke
Bitte warten ..
Mitglied: heyko
23.02.2006 um 14:20 Uhr
die 5 sterne am anfang stehen für

minute stunde tag woche jahr ... d.h. in dem beispiel /5 bedeutet alle 5 minuten
Bitte warten ..
Mitglied: Dambi
06.03.2006 um 08:37 Uhr
sorry hatte ferien und konnte es nicht anschauen.

jetzt habe ich gar nichts unter /etc/cron/crontab!


muss ich da was installieren damit ich das habe?? wenn ja was???

gruss dambi

#edit

ich habe unter /etc/ nur:
cron.d --> ist nichts drin
cron.daily --> da sind so komische dateien drin wie "clean_catman" do_mandb" usw.
cron.hourly --> da ist nichts drin
cron.mounthly --> da ist nichts drin
cron.weekly --> da ist nichts drin

ich habe unter yast "cron" installiert, doch es hat sich nichts geändert!

was muss ich denn machen damit ich das machen kann was ihr beschrieben habt???

danke gruss dambi


#edit nr.2

ich habe jetzt einmal crontab -l gemacht und habe nichts gesehen. dann habe ich im man gesehen dass man crontab -e muss machen damit man etwas einfügen kann. das habe ich auch gemacht. ich habe folgendes gemacht:

crontab -e

dann das herein geschreiben:
*/5 * * * * root php /srv/www/htdocs/check.php &> /dev/null

und wenn ich jetzt crontab -l mache, kommt das:

  1. DO NOT EDIT THIS FILE - edit the master and reinstall.
  2. (/tmp/crontab.4478 installed on Mon Mar 6 09:06:27 2006)
  3. (Cron version -- $Id: crontab.c,v 2.13 1994/01/17 03:20:37 vixie Exp $)
*/5 * * * * root php /srv/www/htdocs/check.php &> /dev/null

hat der das jetzt unter /tmp/crontab.4478 hineingeschrieben? bis jetzt ist das script noch nicht gegangen obwohl ich 5 minuten eingestellt habe. irgendwie funktioniert das nicht so

gruss dambi
Bitte warten ..
Mitglied: Dambi
06.03.2006 um 10:53 Uhr
also ich dachte ich mach nicht noch einmal ein #edit nr. 3

es geht jetzt und zwar war etwas falsch!

der Username root kann man so nicht angeben. deswegen ist es nie gegangen. ich habe es jetzt so ausprobiert:

*/5 * * * * php /srv/www/htdocs/check.php &> /dev/null

und das geht. so geht es nicht:

*/5 * * * * root php /srv/www/htdocs/check.php &> /dev/null

denn wenn man normal in der command line das eingibt:
root php /srv/www/htdocs/check.php &> /dev/null

geht es auch nicht und wenn man das eingibt:
php /srv/www/htdocs/check.php &> /dev/null

dann geht es.

also das ist die Lösung. Danke für eure Hilfe!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

jetzt habe ich aber doch noch eine frage:

ich habe einen befehl, welche ich ausführen muss, damit der syslog server alle meldungen in eine datenbank schreibt und diesen befehl gibt man ein und dann kann man nicht mehr auf diesem command fenster arbeiten. wenn ihr versteht was ich meine.

es ist immer aktiv wenn man den eingibt wie "tail -f /var/log/messages". der befehl lautetet:

mysql -u root --password=passwort syslog < /var/log/mysql.pipe

jetzt will ich diesen befehl aber als dienst einrichten, damit ich das nicht immer ausführen muss und ich nicht ein extra command fenster öffnen muss. wie kann ich das machen, dass dieser befehl sich beim start automatisch ausführt und immer im hintergrund läuft? könnt ihr mir da auch noch helfen? wäre sehr dankbar!

danke

gruss dambi


  1. edit

also ich habe das jetzt so gelöst, dass ich unter /etc/init.d/boot.local folgendes eingetragen habe:
mysql -u syslogfeeder --password=<password> syslog < /var/log/mysql.pipe &

es geht!

ich weiss nicht ob das die schönste lösung ist, aber si funktioniert.

was meint ihr? das sollte doch gut sein so oder?

gruss dambi
Bitte warten ..
Mitglied: stpe
12.03.2006 um 14:50 Uhr
>also ich habe das jetzt so gelöst, dass ich unter /etc/init.d/boot.local folgendes eingetragen
>habe:
>mysql -u syslogfeeder --password= syslog < /var/log/mysql.pipe &
So ist das ok.

Zum PHP-Problem: Du kannst ein PHP-Script auch direkt ausführen (also ohne "php script.php"). Füge als erste Zeile in Deinem PHP-Script einfach einen Shebang auf das PHP-Binary zu. Oder in einfach:
<font class="code">#!/usr/local/bin/php</font>
Dann das PHP-Script mit "chmod +x script.php" ausführbar machen. Und schon lässt es sich einfach über seinen Dateinamen: script.php starten.

Gruss
Stefan
Bitte warten ..
Neuester Wissensbeitrag
Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (33)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...