Wikipedia:Nlwikibots: verschil tussen versies

Verwijderde inhoud Toegevoegde inhoud
Siebrand (overleg | bijdragen)
→‎Toegang: update
update over SGE
Regel 16:
* Beschrijf elke bot etc. in een readme, bijvoorbeeld <tt>~/bots/<taak>/readme</tt>.
* Kondig het aan wanneer je libraries wilt updaten. Ze kunnen namelijk door anderen gebruikt worden.
* Mails aan nlwikibots[[Bestand:At sign.svg|10px]]toolserver.org worden aan alle maintainers gestuurd. Je krijgt de lijst te zien bij 'become nlwikibots', of via <code>getent group nlwikibots</code>
* Laat bij voorkeur stderr van cron jobs naar je eigen adres sturen.
* Voeg je e-mailadres toe aan <tt>~/.forward</tt> om e-mail aan nlwikibots[[Bestand:At sign.svg|10px]]toolserver.org te ontvangen.
 
== Huidig gebruik ==
Regel 28 ⟶ 27:
* Tvpmelder door Erwin: stelt gebruikers op de hoogte van verwijdernominaties van pagina's.
* Dplinks door Erwin: werkt [[Wikipedia:Links naar doorverwijspagina's/Artikelen]] bij.
* Tvpupdater door valhallasw: voegt dagelijks een nieuwe tvp-pagina toe aan [[WP:TVP]].
 
;Webtools
Regel 35:
=== Cron jobs ===
Je kunt cron jobs in <tt>~/cronfile</tt> plaatsen. Vervolgens moet je in crontab de nieuwe configuratie laden:
:<tt>$ crontab ~/cronfile</tt>.
 
Bots moeten tegenwoordig via SGE gestart worden. Dit doe je door een wrapper script te schrijven dat je bot runt, met daarin een aantal extra SGE-commando's. Het volgende template kan je daarvoor gebruiken.
Om stdout naar een bestand te loggen en stderr naar je eigen adres te sturen, kun je een bashscript gebruiken. In dat script verwijs je stdout naar een bestand. Vervolgens verwijs je in <tt>~/cronfile</tt> de stderr naar stdout en pipe je dat naar mail. Bijvoorbeeld:
 
;~/bin/<taak>
<pre>
#!/bin/bash
#$ -l h_rt=0:30:00 # max runtime
#$ -l virtual_free=25M # max memory use
#$ -l arch=* # mag op zowel linux als solaris
#$ -N tvpupdater-valhallasw # naam van taak, eindigt in naam eigenaar
#$ -M <je mailadres>
#$ -m a # alleen mails bij een abort (vanwege bv. runtime-overschrijding)
#$ -b y # draai over netwerkschijf ipv het bestand te kopiëren
#$ -o /dev/null # output naar /dev/null
 
cd ~/bots/<taak>
python <taak>.py >> ~/log/<taak>/$(date +\%Y\%m\%d).log</pre>
</pre>
 
Vergeet niet het script executable te maken (<code>chmod 755 wrapper</code>). Als commando in de cronfile gebruik je vervolgens <code>qcronsub $HOME/pad/naar/wrapper</code>.
 
Je kunt de laatste regel aanpassen om stdout naar een bestand te loggen; stderr wordt standaard opgeslagen in $HOME ('tvpupdater-valhallasw.e1323762') en kan je op een vergelijkbare manier redirecten:
<pre>
#$ -e /dev/null
</pre>
 
Om stdout naar een bestand te loggen en stderr naarMocht je eigenhet adrespreciezer tewillen stureninstellen, dan kun je een bashscript gebruiken. In dat script verwijs je stdout naar een bestand. Vervolgensen verwijsstuur je in <tt>~/cronfile</tt> de stderr naarvia stdout eneen pipe je dat naar mail. Bijvoorbeeld:
 
30<pre>python 6,18<taak>.py *2>&1 * *>> ~/binlog/<taak>/$(date 2>&1+\%Y\%m\%d).log | mail -e -s "Cron error: <taak>" <e-mailadres></pre>
 
NB. Let op de volgorde van 2>&1 en de >>! Eerst de 2>&1, dan de >> - anders krijg je je stderr in je logfile in plaats van in je inbox.
;~/cronfile
<pre># <taak>
30 6,18 * * * ~/bin/<taak> 2>&1 | mail -e -s "Cron error: <taak>" <e-mailadres></pre>
 
=== Pywikipedia ===