Scoutnet vzw

We connect scouts!
Het is momenteel 16 Nov 2024 5:35

Alle tijden zijn UTC + 1 uur




Plaats een nieuw onderwerp Reageren op dit onderwerp  [ 13 berichten ] 
Auteur Bericht
 Titel: crontab
BerichtGeplaatst: 19 Dec 2003 1:58 
Offline
 
 
Gebruikers-avatar

Geregistreerd: 16 Nov 2003 0:00
Berichten: 68
welke CHMOD moeten de scripts die met crontab uit te voeren zijn hebben?
en kunnen die scripts ook php scripts zijn?
en waar kan ik die het best zetten?
en wat is een cgi-bin juist?
en is het mogelijk om de subdomains 'relatieve' links naar subdirectories te geven ipv het hele pad bij iedere src te moeten zetten?

maar enkele vraagjes van de vele, hopelijk weten jullie raad...
(joris sorry als ge deze vragen nu dus twee keer te lezen krijgt, maar ontdekte er nog wat meer en wou niet weer via support komen 'zagen' :wink: )


Omhoog
 Profiel  
 
 Titel:
BerichtGeplaatst: 19 Dec 2003 17:30 
Offline
 
 
Gebruikers-avatar

Geregistreerd: 20 Sep 2002 23:00
Berichten: 166
maarten schreef:
welke CHMOD moeten de scripts die met crontab uit te
voeren zijn hebben?
en kunnen die scripts ook php scripts zijn?
en waar kan ik die het best zetten?
en wat is een cgi-bin juist?


Unix/linux kent 3 permisies:
uitvoerbaar : x
beschrijfbaar: w
leesbaar: r

dan heb je nog 3 gebruikers:
eigenaar
groep
rest

vb
drwxr-xr-x 4 rods users 4096 Dec 16 17:46 .cpan

de d geeft aan dat het om een directory gaat
de volgende 3 tekens rwx geven aan dat de eigenaar (rods) zowel
schrijf/lees als uitvoerrechten heeft op die map. De volgende 3 tekens
r-x geven aan dat de groep users lees en uitvoerrecht hebben en de rest
heeft ook r-x dus ook lees en uitvoerrecht.

Een script dat jij alleen mag uitvoeren geef je best rwx--- --- dus chmd
700
(x=1 w=2 en r=4)

via crontav -e kan je dan je script oproepen.

ik zet al mijn scripts in een directory bin die ik zelf aanmaak. Als je
dan je path nog aanpast gaat linux daar ook kijken in die map om dat
uitvoerbaar bestand te vinden. Dus je moet dan niet het volledige path
te geven.

PATH=$PATH:$HOME/bin
export PATH

zou dat moeten oplossen.


Omhoog
 Profiel  
 
 Titel:
BerichtGeplaatst: 19 Dec 2003 17:34 
Offline
 
 
Gebruikers-avatar

Geregistreerd: 20 Sep 2002 23:00
Berichten: 166
php als scriptingtaal is mogelijk:

Code:

#!/usr/local/bin/php
<?
           //zet hier je code vb
          phpinfo();

?>



intypen en vb info.php noemen.
chmod 700 info.php

./info.php
en je krijgt de uitvoer in de shell.

zet je het in $HOME/bin en heb je deze map aan je PATH toegevoegd dan
kan je overal waar je maar wil
foto.php
aanroepen via de prompt.


Laatste vraag: wat is een cgi-bin

een map die gebruikt wordt om cgi scripts in op te slagen. Dus
uitvoerbare programmas die je met je browser kan aanroepen.


Omhoog
 Profiel  
 
 Titel:
BerichtGeplaatst: 19 Dec 2003 18:14 
Offline
 
 
Gebruikers-avatar

Geregistreerd: 16 Nov 2003 0:00
Berichten: 68
Heel erg bedankt, ik had je mail zojuist ook gelezen en, voor zover ik er iets van begrepen heb, heb het allemaal ingesteld.
Waar moet ik juist die
PATH=$PATH:$HOME/bin
export PATH
in zetten? mijn crontab file?

over de subdomeinen heb ik zelf maar wat opgezocht en na wat puzzelen de volgende .htaccess file gemaakt, die wél werkt voor de subdomeinen :

RewriteCond %{HTTP_HOST} ^jonggivers\.scoutsaleydis\.be$ [NC]
RewriteRule ^(.*)$ http://www.scoutsaleydis.be/jonggivers/$1 [L]

deze laat wel toe om hele directory-structuren over te nemen. Wat is dan het verschil met die van jullie, die enkel de index.php overneemt en deze in de verder lege root subdomein.domein.be 'plaatst'. Als je snapt wat ik bedoel.


Omhoog
 Profiel  
 
 Titel:
BerichtGeplaatst: 20 Dec 2003 15:31 
Offline
Site Admin
Site Admin

Geregistreerd: 30 Sep 2002 23:00
Berichten: 1806
Citaat:
Waar moet ik juist die
PATH=$PATH:$HOME/bin
export PATH
in zetten? mijn crontab file?


in je .bash_profile file
dus zeker niet in je crontab !


Omhoog
 Profiel  
 
 Titel:
BerichtGeplaatst: 31 Dec 2003 13:51 
Offline
Site Admin
Site Admin
Gebruikers-avatar

Geregistreerd: 17 Jul 2002 23:00
Berichten: 1522
Woonplaats: Wetteren
Hallo,

Ik heb even geprobeerd wat sn0857 hierboven verteld, maar bij werkt het niet.

> Ik heb een bestand info.php gemaakt en het in onze hoofddir gezet. Het heeft toegangsrecht 700 en bevat volgende code:
Code:
#!/usr/local/bin/php
<?
           //zet hier je code vb
          phpinfo();

?>

> Als ik in shell het bestand opvraag met ./info.php, krijg ik volgende error:
Citaat:
sn0725@leeuwarden:~$ ./info.php
: command not found
./info.php: line 3: ?: No such file or directory
./info.php: line 4: //zet: No such file or directory
./info.php: line 5: syntax error near unexpected token `;'
'/info.php: line 5: ` phpinfo();
sn0725@leeuwarden:~$

Wat doe ik verkeerd?

To


Omhoog
 Profiel  
 
 Titel:
BerichtGeplaatst: 01 Jan 2004 17:24 
Offline
Site Admin
Site Admin

Geregistreerd: 30 Sep 2002 23:00
Berichten: 1806
idd. zo gaat het niet (zou nochtans moeten!) (bekijk ik even...)

zou gaat het alvast wel:
(aan de shell prompt)

php info.php


Omhoog
 Profiel  
 
 Titel:
BerichtGeplaatst: 01 Jan 2004 18:22 
Offline
 
 
Gebruikers-avatar

Geregistreerd: 20 Sep 2002 23:00
Berichten: 166
kijk in de /tmp map ik heb daar het voorbeeld ingezet en uitvoerbaar gemaakt voor iedereen.

doe in console:
Code:
/tmp/info.php


en kijk naar de uitvoer.

script is het zelfde als hier gepost is. ==> controle via
Code:
cat /tmp/info.php


ik weet niet hoelang dat het gaat blijven staan want /tmp zal wel regelmatig leeggemaakt worden.


Omhoog
 Profiel  
 
 Titel:
BerichtGeplaatst: 01 Jan 2004 18:27 
Offline
 
 
Gebruikers-avatar

Geregistreerd: 20 Sep 2002 23:00
Berichten: 166
ok ik zie al wat er mis is je eerste lijn moet de interpreter weergeven
#!/usr/local/bin/php
en geen lege lijn

als je die lijn leeg laat zal het script worden uitgevoerd door bash en die kent die commando's niet. Maar zoals reeds gezegd staat het voorbeeldje in /tmp haal het daar maar af.


Omhoog
 Profiel  
 
 Titel:
BerichtGeplaatst: 02 Jan 2004 22:43 
Offline
Site Admin
Site Admin
Gebruikers-avatar

Geregistreerd: 17 Jul 2002 23:00
Berichten: 1522
Woonplaats: Wetteren
sn0857 schreef:
ok ik zie al wat er mis is je eerste lijn moet de interpreter weergeven
#!/usr/local/bin/php
en geen lege lijn

als je die lijn leeg laat zal het script worden uitgevoerd door bash en die kent die commando's niet. Maar zoals reeds gezegd staat het voorbeeldje in /tmp haal het daar maar af.

Klopt dat die lege lijn daar niet mocht staan, maar ik had/heb het ook geprobeerd zonder en dat ging evenmin. Ik heb nu even jouw versie gekopieerd. Het enige verschil dat ik zie is dat ik het bestand info.php heb gemaakt met notepad en jij met een andere texteditor/rechtstreeks in shell. Daardoor staat bij jouw alles op één lijn (de verschillende regels zijn in notepad aangegeven met van die vierkante blokjes).

Zou dat de reden kunnen zijn? Als ik het zo kopieer van jouw bestand, werkt het blijkbaar wel?

Anyway, ik geraak er nu wel. Bedankt!

To


Omhoog
 Profiel  
 
 Titel:
BerichtGeplaatst: 03 Jan 2004 11:48 
Offline
 
 
Gebruikers-avatar

Geregistreerd: 20 Sep 2002 23:00
Berichten: 166
Er zit een verschil in de manier waarop unix en windows hun files opmaken. Namelijk dos gebruikt een cariage return CR gevolgd door een line feed LF en linux enkel een LF.

Volgend prog dat geïnstalleerd staat op de server kan je helpen.

Citaat:
fromdos(1) fromdos(1)

NAME
fromdos - convert DOS text file format to UNIX.

SYNOPSIS
fromdos < dosfile.txt > unixfile.txt

DESCRIPTION
fromdos takes a DOS text file as stdin and sends a UNIX
text file to stdout. DOS text file format separates lines
of text by two characters: CR followed by LF (hex 0d 0a).
UNIX text file format separates lines of text with a sin-
gle LF character (hex 0a). This program changes the CR LF
groups found in the input stream to LF in the output
stream.

SEE ALSO
todos(1).


Bij de meeste linuxdistro's kan je dat doen met dos2unix maar scoutnet draait slackware en daar is het fromdos dat de klus klaart.

Dit prog leest alles aan STDIN en schrijft alles uit aan STDOUT dus < en > gebruiken

fromdos < dosfile.txt >unix.txt

zal door < een file inlezen
en door > de uitvoer in een file unix.txt wechschrijven.


Dus die vierkante blokjes zijn line feeds. Wat betreft het gebruik van editors. vim staat op de scoutnetserver en zet de syntax in kleur wat handig kan zijn bij programmeren. Maar indien je liever notepad blijft gebruiken dan moet je beslist fromdos eens gebruiken.

Als voorbeeld heb ik de file /tmp/info.php omgezet naar zijn dos equivalent.

todos </tmp/info.php >info_dos.php
chmod 777 /tmp/info_dos.php ==> iedereen alle rechten geven
/tmp/info_dos.php ==> uitvoeren

resultaat:

Citaat:
sn0857@leeuwarden:/tmp$ /tmp/info_dos.php
: bad interpreter: No such file or directory


dan
fromdos < /tmp/info_dos.php > /tmp/info_unix.php
chmod 777 /tmp/info_unix.php
/tmp/info_unix.php

en dat werkt wel

De files staan nog in /tmp en zijn voor iedereen bereibaar dus je kan het controleren. Ik heb ze wel chmod 555 gedaan om te vermijden dat iemand de inhoud zou aanpassen zodat het niet meer werkt.


Omhoog
 Profiel  
 
 Titel:
BerichtGeplaatst: 03 Jan 2004 12:05 
Offline
Site Admin
Site Admin
Gebruikers-avatar

Geregistreerd: 17 Jul 2002 23:00
Berichten: 1522
Woonplaats: Wetteren
Interessant om weten - bedankt!

To


Omhoog
 Profiel  
 
 Titel: CRON => MySQL
BerichtGeplaatst: 09 Feb 2004 16:42 
Offline
 
 
Gebruikers-avatar

Geregistreerd: 15 Okt 2002 23:00
Berichten: 5
Woonplaats: Sint-Niklaas
Hoi,

ik heb een ander probleemke met een CRON-job.
Ik heb een php-script dat dagelijks (lees: nachtelijks) de db moet optimaliseren en een aantal andere taken uitvoert op de database.
Als ik dat script wil uitvoeren via de browser (URL), dan werkt dit perfect, maar als ik het probeer uit te voeren via CRON, dan is de uitvoer

<b>Fatal error: Call to undefined function: mysql_connect() in
<i>... path van het bestand... </i> on line 6</b>

Moet je parameters meegeven als je het script wil oproepen of zo?
Die connect_methode staat in een bestand dat geïnclude wordt in het bestand dat via cron wordt opgeroepen.

Wie kan me helpen?


Omhoog
 Profiel  
 
Berichten weergeven van de afgelopen:  Sorteer op  
Plaats een nieuw onderwerp Reageren op dit onderwerp  [ 13 berichten ] 

Alle tijden zijn UTC + 1 uur


Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 30 gasten


U mag geen nieuwe onderwerpen plaatsen in dit forum
U mag geen reacties plaatsen op onderwerpen in dit forum
U mag uw berichten niet wijzigen in dit forum
U mag uw berichten niet verwijderen in dit forum
U mag geen bijlagen plaatsen in dit forum

Zoeken naar:
Ga naar:  
cron
Powered by phpBB® Forum Software © phpBB Group
Vertaald door phpBBservice.nl.