Waarschuwing!
De beste manier om Linux te leren kennen is om de commando's gewoon uit te proberen. Doe dit echter nooit als root, maar als gebruiker! Maak eventueel als root een dummy user aan. In uw /home/dummy directory kunt u veilig experimenteren. |
De besproken utilities zijn thematisch gerangschikt. U kunt ze afzonderlijk gebruiken, maar bedenk dat de kracht van de UNIX utilities in hun samenwerking ligt. En die mogelijkheden bepaalt u.
man |
De klassieke UNIX utilities hebben bijna altijd in een bepaalde stijl geformatteerde handleiding. De stijl van de handleidingen (manuals) is kort en bondig. Ze werden meestal door de programmeurs zelf gemaakt. De manual pages worden door velen als obsoleet beschouwd. Het was ooit de bedoeling dat ze door het hypertext info systeem zouden worden vervangen, maar het zit er dik in dat op ht://Dig gebaseerde zoeksystemen deze rol gaan overnemen. Maar vooralsnog blijven ze bestaan, al was het alleen maar omdat er een zee van utilities bestaan om ze te doorzoeken en in beeld te brengen. Bovendien werken deze in tekstmodus geschreven programma's goed in terminal vensters. Aan een Windows HLP bestand hebt u zonder conversieprogramma niets. Man less geeft de beschrijving van de opdracht "less". man lessMan heeft veel opties: sommigen kregen een alias. |
less |
Het schermbeeld van man wordt vertoond door het pagineringsprogramma less. Less kan meer dan het onder OS/2 en DOS bekende more. Less laat zoeken en scrollen toe. Het scrollen gaat met de pijltjestoetsen. Het doorzoeken met n(ext). Bekijk man less maar eens. Met de spatiebalk bladert u een pagina verder. De b staat voor back, en de q staat voor quit. Type h voor hulp over less' sneltoetsen. h or H Help: display a summary of these commands. If you forget all the other commands, remember this one.Belangrijke functies zijn "/patroon" of "?patroon" en "n(ext)" om verder te zoeken. / geeft een prompt links onderin. Hierachter typt u uw zoekterm (bijv. /help). Met Enter start het zoeken en met n(ext) sprint u naar de volgende treffers. Achteruit zoeken gaat met ?trefwoord (of Shift-/). /trefwoord en ?trefwoord markeren meteen de gevonden trefwoorden in inverse video. Zo ziet u meteen waar u moet zijn. Het kunnen meerdere trefwoorden zijn, want less laat het doorzoeken van meerdere bestanden met reguliere expressies toe. Geen wonder dat UNIX guru's er verzot op zijn. |
whatis man -f |
De uitvoer van whatis is kort en krachtig. Whatis geeft alleen de beschrijving van een manual page. Whatis maakt gebruik van een database die door root is te genereren (makewhatis). sjoerd@laptop:~ > whatis manman (1) - an interface to the on-line reference manualsman (7) - macros to format man pagessjoerd@laptop:~ > whatis aproposapropos (1) - search the manual page names and descriptionssjoerd@laptop:~ > whatis whatiswhatis (1) - display manual page descriptions |
apropos man -k |
Apropos doorzoekt de manual pages op trefwoorden. Het levert vaak lange lijsten op, maar apropos (man -k) is bijzonder handig als u zich wilt oriënteren. sjoerd@visser:~ > apropos mangsftopk (1) - render a ghostscript font in TeX pk format ' # small and boldface (not all -man's provide it) SB\$1 \$2 ..man (1) - an interface to the on-line reference manualsman (7) - macros to format man pagespod2man (1) - translate embedded Perl pod directives into man pagesrman (1) - reverse compile man pages from formatted form to a number of source formatsskel (9) - skeleton man page for section 9 entrieszshall (1) - the Z shell meta-man pageman (1) - an interface to the on-line reference manualsman (7) - macros to format man pagespod2man (1) - translate embedded Perl pod directives into man pagesrman (1) - reverse compile man pages from formatted form to a number of source formatsskel (9) - skeleton man page for section 9 entrieszshall (1) - the Z shell meta-man pageU kunt op veel terminal emulators met Shift-Page-up of Shift-pijl door de tekst scrollen. Of apropos gebruiken in combinatie met less: sjoerd@laptop:~ > apropos zoekterm | less
|
info |
Het info hypertekst hulpsysteem toont documentatie van een heleboel programma's. De volgende opdrachten werken op de prompt (onder X is xinfo de applicatie, maar ook KFM en andere webbrowsers kunnen de info-bestanden tonen). info bash (zeer uit gebreid) info info geeft het volgende scherm. Met de cursor op de sterretjes "klikken" (Enter) en verlaten met Ctr-C): File: info, Node: Top, Next: Getting Started, Prev: (dir), Up: (dir) |
--help |
Veel uitvoerbare bestanden tonen hun gebruikers opties als ze opgeroepen worden met de optie --help. Zo ook Netscape. Denk om de dubbele koppeltekens (--). sjoerd@visser:~ > netscape --helpNetscape 4.7/Fortify 15-Sep-99; (c) 1995-1998 Netscape Communications Corp.usage: netscape [ options ... ]where options include: |
>> Top << |
Zoeken en vinden>> Top << |
echo $variabele$ |
Echo $variabele$ (of echo $variabele) geeft de inhoud van een variabele weer. sjoerd@visser:~ > echo $PATH$/usr/local/bin:/usr/bin:/usr/X11R6/bin:/bin:/var/lib/dosemu:/usr/games/bin:/usr/games:/opt/gnome/bin:/opt/kde/bin:.:/opt/bin$sjoerd@visser:~ > set | lessof sjoerd@visser:~ > env | lesslaat u door alle omgevingsvariabelen bladeren. NB Het > doorvoerteken in de prompt is hier wat verwarrend. Maar er staat : env | less. Een ouderproces (bijv. de shell) zal zijn variabelen aan zijn kindprocessen (de vanuit de shell gestarte programma's) doorgeven. Vaak zijn ze al door root ingesteld. Wilt u uw persoonlijke instellingen wijzigen, dan kunt u ze exporteren. Als u niet met vi overweg kunt, is dit een handige ingang voor ~/.bashrc : export EDITOR=/usr/bin/mcedit
|
find |
Find doorzoekt de opgegeven mappen op een bestanden met specifieke kenmerken: find [path...] [expression]Belangrijk zijn de zoekopties voor bestandsnamen (-name [naam]) en bestandstypen (type=[b,d,d,f,p,l]): Zonder [path...] doorzoekt find de huidige directory (en subdirectories). find -name adres.dbffind /home -name "*.gif"Find is een krachtig hulpmiddel door de ondersteuning voor reguliere expressies. find / -type d | du --one-file-system | sort -n -g -r | head -100 >~/top100.txtDeze zoekopdracht geeft de top 100 van niet-gemounte directories (-type d). Met --one-file-system wordt voorkomen dat find ook /mnt gaat doorzoeken. De output wordt via een pijp op grootte gesorteerd (sort -n -g -r) en de bovenste 100 items (head 100) worden via een omleiding (>) naar het bestand top100.txt in uw home directory (~) opgeslagen. find / -user sjoerdzoekt alle bestanden van de gebruiker sjoerd op alle gemounte schijven. De optie --one-file-system beperkt dit tot uw huidige partitie. Voor snel zoeken onder de KDE GUI is kfind (Ctrl-F) onder KFM aan te bevelen. |
grep |
Grep (global regular expression print) doorzoekt een of meer bestanden op een trefwoord of zoekstring. Grep geeft alleen de regels weer waarin de string aangetroffen werd. |
grep 'string' bestand |
Dit is de meest eenvoudige vorm. Als de zoekstring uit een enkel trefwoord bestaat mogen de enkelvoudige aanhalingsteken weggelaten worden. sjoerd@visser:~ > grep "zoekwoord" /home/sjoerd/*Grep is vooral handig om lange lijsten op trefwoordjes te doorzoeken. Waneer was er een foutmelding met char-major-15? root@visser:/home/sjoerd > cat /var/log/messages | grep char-major-15Welke geïnstalleerde rpm's bevatten de string lib? De gefilterde output van rpm query all zou u weer in een nieuw bestand kunnen plaatsen( > bestand erachter). sjoerd@visser:~ > rpm -qa |grep libZonder grep moet u lang zoeken. |
grep varianten |
zgrep doorzoekt gezipte bestanden (.gz) rgrep doorzoekt recursief (dus ook in subdirectories). ngrep doorzoekt het netwerk apropos grep laat zien dat er heel wat grep varianten bestaan. sjoerd@visser:~ > apropos grepegrep (1) - print lines matching a patternfgrep (1) - print lines matching a patterngrep (1) - print lines matching a patternngrep (8) - network greprgrep (1) - a recursive, highlighting grep programzgrep (1) - search possibly compressed files for a regular expressionzipgrep (1) - search files in a ZIP archive for lines matching a patternegrep (1) - print lines matching a patternfgrep (1) - print lines matching a patterngitrgrep (1) - GNU Interactive Tools - recursive grepgrep (1) - print lines matching a patterngrephistory (1) - display file names from Usenet history filengrep (8) - network grepnisgrep (1) - regex searching in NIS+ tablesnngrep (1) - grep for news group names (nn)pgrep (1) - a grep with Perl-compatible regular expressions.rgrep (1) - a recursive, highlighting grep programsgrep (1) - search a file for a structured patternzgrep (1) - search possibly compressed files for a regular expressionzipgrep (1) - search files in a ZIP archive for lines matching a pattern |
locate |
Locate is handig om bibliotheken te vinden: root@visser:/home/sjoerd > locate libX11/usr/i486-linux-libc5/lib/libX11.so/usr/i486-linux-libc5/lib/libX11.so.6Met de opdracht updatedb wordt een database aangemaakt. |
whereis |
Whereis doorzoekt de whereis database op een bestand. Duplicaten zijn hiermee op te sporen. Bedenk dat het pad van een user beperkter is dan het pad van de root. Toch kunt u met whereis programma's opsporen die root toegang vereisen: sjoerd@visser:~ > ipchains --helpbash: ipchains: command not foundsjoerd@visser:~ > whereis ipchainsipchains: /sbin/ipchains /usr/man/man8/ipchains.8.gzDe reden is dat root de whereis database heeft samengesteld. |
which |
Which doorzoekt uw pad ($PATH$) op een uitvoerbaar bestand. De output is de exacte locatie van het bestand . Hiermee kunt u nagaan welke versie u gebruikt. sjoerd@visser:/ > which nedit/usr/X11R6/bin/nedit |
|
Printen>> Top <<Printen onder Linux gebeurt onder auspicien van de printer daemon lpd. Lpd plaatst de opdrachten in een wachtrij (spooler, queue) in /var/spool/... |
lpr |
Het Line Printer utility plaats bestanden in de printer wachtrij. Man lpr laat ook opties zien voor andere bestandsformaten. |
lpr bestand1 bestand2 |
Print de genoemde tekstbestanden. |
lpq |
De printer wachtrij (queue) bezien. Hierbij wordt ook het job nummer van de printtaak zichtbaar. KDE gebruikers zullen het grafische frontend klpq waarderen. |
Lprm printtaak |
Verwijdert (rm=remove) een specifieke printtaak (job zoals weergeven door lpq). |
lpc |
Bestuurt de printer daemon (lpd) en de spooler. sjoerd@visser:~ > lpc statusascii:queuing is enabledprinting is enabledno entriesno daemon presentlp:queuing is enabledprinting is enabledno entriesno daemon presentraw:queuing is enabledprinting is enabledno entriesno daemon presentOm de line printer daemon en de wachtrij te manipuleren is het super-user account noodzakelijk. Er verschijnt een interactief menu. U kunt altijd met help of met help opdracht meer informatie krijgen. sjoerd@visser:~ > suPassword:root@visser:/home/sjoerd > lpclpc> helpCommands may be abbreviated. Commands are: |
tunelp |
tunelp - set various parameters for the lp device root@visser:~ > tunelpUsage: tunelp <device> [ -i <IRQ> | -t <TIME> | -c <CHARS> | -w <WAIT> |-a [on|off] | -o [on|off] | -C [on|off] | -q [on|off] | -s |-T [on|off] ] |
|
Voor de KDE bestaan er handige grafische frontends voor de hierboven genoemde tools (bijv. klpq). |
|
Bestandsbeheer>> Top << |
mc |
De Midnight Commander (mc) is mijn meest favoriete bestandsbeheerder. Deze Norton Commander kloon heeft een eigen tekstverwerker (mcedit). Met F9 roept u in mc en mcedit een menu op. Als u alle opties van de mc kent en beheerst mag u zich gevorderd Linux gebruiker noemen. |
GNU File utilities |
|
du |
Disk usage geeft de directory groottes aan. du --one-filesystem / 2>/dev/nullDe top 100 geeft: find -type d | du -b --one-file-system | sort -n -g -r | head -100 >~/top100.txtHet gaat hier alleen om de bestanden in de rootmap zelf (one-file-system). Bestanden in partities die op de / map gemount zijn worden niet meegenomen. Du houdt geen rekening met slack. Met veel kleine bestanden kan de partitie dus veel eerder vol zitten dan u verwacht. |
df |
Diskfree geeft de vrije ruimte op de beschikbare (gemounte) partities aan. sjoerd@laptop:~ > dfFilesystem 1k-blocks Used Available Use% Mounted on/dev/hda7 1882344 1552056 330288 83% //dev/hda5 43885 3827 37792 10% /bootshmfs 95448 0 95448 0% /dev/shm//ecs/data 2080384 1910240 170144 92% /mnt/data//zolder/samba 4851328 4518016 333312 94% /mnt/sambaHet Linux bestandssysteem maakt geen onderscheid tussen gemounte samba netwerkdrives en lokale partities. NB. shmfs is het Shared Memory File System van versie 2.4 kernels; een POSIX.4 protocol om geheugen te delen. |
dd |
Een "Norton Ghost" voor Linux. Hiermee kunt u exacte mirrors van partities maken. Het volgende commando kopieert hda1 block voor block naar naar /pad/bestand: dd if=/dev/hda1 of=/<pad>/<bestand> bs=512En: dd if=/<pad>/<bestand> of=/dev/hda1 bs=512zet de image vanaf een bootflop terug. Voor zover ik kon nagaan lijkt dit alleen op typische linux bestandssystemen te lukken. Een aardig alternatief voor ghost is Partition Image voor Linux. |
tar |
De tar tape archiver is meer dan een archiveringstool: tar kan ook complete directorystructuren ("bron") met permissies exact kopieren naar een nieuwe bestemming : tar cf - bron | (cd bestemming; tar xvf -)Maar klassiek is het een Tape ARchiveringstool. Een programma dat de inhoud van de vaste schijven naar een magnetisch band verstuurd (/dev/rmt0). Tar is hierbij nauw verbonden met GNU zip (gzip), dat de inhoud "on the fly" comprimeert of (bij de restore) decomprimeert. Magnetische banden zijn seriele opslagmedia met een enorme capaciteit. Maar ze hebben ook een nadeel. Ze zijn niet snel en ze zijn niet willekeurig te beschrijven. Tar zorgt er voor dat alles byte voor byte (serieel) naar de tape geschreven wordt. En dat kan zelfs via een telefoonlijn. Maar even de inhoud van een 10 GB tar archief op de band bekijken zit er niet in. Zelfs niet als u het archief op een lokale vaste schijf zette. |
|
Dit zijn de instellingen van een gecomprimeerde backup van een Linux partitie naar de partitie sda5 op de een USB schijf. Voer hem bij voorkeur uit op een moment dat dat er geen bestanden door andere gebruikers geopend zijn. Ideaal doet u dit vanuit een reddingspartitie, maar single user mode (init 1) kan ook uitkomst brengen. mount /mnt/sda5tar -zcvpf /mnt/sda5/archief/volledig-`date '+%d-%B-%Y'`.tgz /bin /boot /dev /etc /home /lib /opt /root /sbin /sys /usr /var --directory /mnt/ --exclude /mnt/sda5/archief --exclude=*.iso --exclude=*.mpg >> /root/root_backup.txtexitDe volgende opties spelen een rol (GNU tar manual): -c Creëer een nieuw archief. De naam van het archief wordt met "date" dynamisch aangemaakt: /mnt/sda5/archief/volledig-`date '+%d-%B-%Y'`.tgz -v schrijf wat je doet naar het scherm (Verbose). -p behoudt de bestandsPermissies (dit spreekt onder Linux vanzelf, maar kan soms weggelaten worden) -f gebruik een archiefbestand (de default is het eerste removable media tape device: /dev/rmt0) Andere niet gebruikte opties zijn: -l Blijf in het Lokale bestandssysteem: gemounte drives worden dan als lokaal gezien. --exclude=*.tgz De meeste tgz bestanden zijn later wel weer terug te vinden. --exclude=proc Deze optie zou weg kunnen worden gelaten omdat de meeste instellingen in de map /proc bij het booten al dynamisch worden aangemaakt. --exclude=temp Deze optie zou weg kunnen worden gelaten omdat de meeste instellingen in de map /temp dynamisch worden aangemaakt. Maar aan de andere kant stellen programma's hier soms instellingen in. |
|
Het grootste probleem met tar is dat het ook dynamische mappen als dev, media, mnt, proc en tmp meeneemt. In het ergste geval worden zelfs de inhoud van een aangekoppelde DVD of het nog niet voltooide backup-bestand in de backup meegenomen. Hiervoor dienen exclusielijsten, maar persoonlijk geef ik liever op wat ik wel wi backuppen dan wat ik niet mee wil nemen. vandaat dat ik gewoon een lijst aanmaak van de te backuppen mapen. Een ander probleem als u een backup van het systeem aanmaakt is dat u dit doet op een multi-usersysteem. Dus terwijl u de /var/spool/mail backupt kan er nog post aan binnen komen. En als het bestand zowel door tar als door het mail systeem en een virusscanner benaderd wordt kan er dataverlies optreden. PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND7517 root 17 0 1704 640 268 R 62.8 0.1 16:40.85 gzip7765 root 18 0 50424 44m 1108 R 17.2 8.8 2:03.71 nvcc7507 root 16 0 2292 1084 820 D 10.6 0.2 0:54.77 tar4308 root 15 0 0 0 0 S 2.0 0.0 0:31.67 usb-storageOm die reden beschikt Linux ook over de single user mode. Deze is door root op te starten met de opdracht "init 1". Nu is er maar een gebruiker en dat is root. U zou daar het volgende backup script mee kunnen uitvoeren. Ideaal doet u dat 's nachts als verder niemand de computer gebruikt. |
Backup via een shell script. |
Een prachtig shellscript om backups naar een tweede vaste schijf mee uit te voeren is: #!/bin/shcd /mnt/backup/temp # In deze map heb ik veel ruimte!for i in /bin /boot /etc /home /lib /opt /root /sbin /sys /usr /vardotar cvzf /mnt/backup/archief/$i.`date +%Y%m%d`.tar.gz $i &donewaitecho "De Backups zijn klaar!"Er wordt nu per map een archief met datum aangemaakt. Bijv. : boot.20051202.tar.gz. De backups verlopen parallel, wat dus wel meer fragmentatie oplevert. Normaal werkt tar de bestanden serieel af (tar=tape archiver ). Voor gebruik van het script in cron script laat u de laatste twee regels eruit. De opdracht "tar cvzf /mnt/backup/archief/$i.`date +%Y%m%d`.tar.gz $i" geeft de datum als 2 december 2005 weer. De korte Amerikaans schrijfwijze heeft als voordeel dat een alfabetische weergave meteen ook op datum sorteert. In het begin wordt /mnt/backup/temp tot actieve directory gemaakt. Dit voorkomt dat de / map verstopt raakt met de tijdelijke bestanden. Het systeem zal dan vastlopen. Mocht /mnt/backup/temp te weinig ruimte hebben, dan geldt dat ook voor /mnt/backup/archief. |
cpio |
Copy In-Out is vooral handig voor backups. |
touch |
Met touch [bestandsnaam] krijgt het bestand de actuele datum als datum van laatste wijziging. Dit aanraken is handig als u bestand mee wilt nemen in een backup van recent gewijzigde bestanden (incrementele backup). Als het bestand niet bestaat maakt touch een leeg bestand aan (bijv. een PID bestand). En voor WINE soms ook een essentiële Windows DLL... |
|
Systeem>> Top << |
cat |
De manual zegt over cat: concatenate files and print on the standard output. Met cat kun je bestanden met elkaar verbinden. De eenvoudigste vorm cat bestand geeft de bestandsinhoud op het scherm (de standard output is het scherm) weer. Doe dit niet met binaire bestanden. Deze moeten naar een nieuw bestand worden geleid. Wat heeft cat met het systeem van doen? In de map /proc/ is met "cat bestandsnaam" veel systeeminformatie op te vragen. De nummers van de mappen slaaan op de lopende processen. /proc/1/ geeft dus informatie over init. cat -A /proc/* geeft de inhoud van de bestanden in /proc/ op het scherm weer. |
ps |
Het ps (report process status) commando heeft veel meer opties dan u wellicht kent. Zo kan ps m het geheugengebruik en ps x de processortijd van processen schatten. Zie: man ps. Ps a geeft alle processen (ook van andere gebruikers), ps a x is nog uitgebreider. Ps l geeft een long format. Als ps een onoverzichtelijke output geeft kunt u met ps | grep trefwoord gerichter zoeken. Hier wordt gezocht naar de Proces-ID van Netscape. sjoerd@visser:~ > ps |grep nets916 tty1 00:00:04 netscape925 tty1 00:00:00 netscape
|
kill |
Met het kill commando kunt u vastgelopen processen beeindigen. De syntax is kill [Process ID]. Met ps kan de Process ID opgezocht worden. Hier wordt gepoogd een vastgelopen Netscape te killen, wat niet lukt. Een kill -9 [PID] killt Netscape wel. sjoerd@visser:~ > ps |grep nets916 tty1 00:00:04 netscape925 tty1 00:00:00 netscapesjoerd@visser:~ > kill 916sjoerd@visser:~ > ps |grep nets916 tty1 00:00:04 netscape925 tty1 00:00:00 netscapesjoerd@visser:~ > kill -9 916sjoerd@visser:~ > ps -l |grep netsVanzelfsprekend mag een gebruiker alleen zijn eigen processen killen. Alleen root is in staat andermans en/of systeemprocessen beëindigen. In het kader van het killen van processen wil ik wijzen op de van NT afgekeken KDE Taskmanager (ktop), een soort frontend ktop. Rechtsklikken op een proces laat de opties zien, waaronder meerdere opties om het proces te beëindigen. Onder KDE kunt u dit met het doodshoofdje van Ctr-Alt-Esc (SIGKILL) bereiken. De controle wordt uitgevoerd met ps (via de pijl omhoog toets haalt u eerder gegeven commando's terug). |
top |
Top geeft een dynamisch overzicht van de lopende processen in less. 75 processes: 74 sleeping, 1 running, 0 zombie, 0 stoppedCPU states: 1.9% user, 3.5% system, 0.0% nice, 94.4% idleMem: 128140K av, 120252K used, 7888K free, 80272K shrd, 696K buffSwap: 128484K av, 11024K used, 117460K free 47008K cachedPID USER PRI NI SIZE RSS SHARE STAT LIB %CPU %MEM TIME COMMAND727 sjoerd 12 0 4392 4392 3204 S 0 3.7 3.4 1:50 ktop1134 sjoerd 12 0 996 996 788 R 0 1.3 0.7 0:00 top218 root 0 0 356 308 220 S 0 0.1 0.2 0:01 nscd672 root 6 0 47872 46M 2024 S 0 0.1 37.3 2:15 X1 root 0 0 80 68 48 S 0 0.0 0.0 0:04 init2 root 0 0 0 0 0 SW 0 0.0 0.0 0:00 kflushd3 root 0 0 0 0 0 SW 0 0.0 0.0 0:00 kupdate(etc,etc)Met k(ill) vraagt top om het Process ID to kill (geforceerd afsluiten). Een programma met 100% cpu-use (Netscape) is een goede gegadigde. Met q(uit) sluit u top af. |
free |
Het utility free geeft het geheugengebruik in kilobytes aan. sjoerd@visser:~ > freetotal used free shared buffers cachedMem: 128140 125132 3008 96184 1524 65088-/+ buffers/cache: 58520 69620Swap: 128484 384 128100Total memory = fysiek geheugen, used = gebruikt geheugen, free = beschikbaar geheugen, shared = door applicaties gedeeld geheugen (m.n. via dynamisch gelinkte bibliotheken), buffers = beschikbaar voor I/O operaties (verg. DOS buffers) , cached = geheugen in de vaste schijf cache. Total swap: de grootte van de swappartitie, used = op de HD geplaatst geheugen en free is de nog beschikbare swapspace. De informatie is ook beschikbaar in file:///proc/meminfo |
cron |
De cron deamon (crond) van Paul Vixie voert op gezette tijden opdrachten uit. Crond leest zijn opdrachten uit een crontab configuratiebestand. Het systeem crontab bestand zit in /etc en dat van gebruikers in /var/spool/cron/tabs. Het crontab bestand ziet er wat ingewikkeld uit, maar het komt er op neer dat u de steeds een tijdstip en een datum moet invoeren en daarna de opdracht. De variabelen in crontab worden door spaties gescheiden. De door een spatie gescheiden crontab variabelen zijn: minuut uur dag maand weekdag opdracht.
Hier zijn weer variaties op mogelijk. Het sterretje kwamen we al tegen. Het * betekent (afhankelijk van de lokatie) op iedere minuut, uur, dag, maand of weekdag. Maar als hierdoor conflicten ontstaan, bepalen de meer specifieke ingangen wat het wordt. Als u op iedere weekdag van iedere maand om 12.10 uur een bepaalde opdracht wilt laten uitvoeren: 10 12 * * * opdrachtAls u dit alleen op vrijdagavond om 18.00 wilt doen: 0 18 * * 5 opdrachtIn dit geval verliezen het derde en het vierde sterretje de betekenis "iedere", maar worden "geeft niet op welke" vrijdag. U kunt ook meerdere opdrachten laten uitvoeren: u koppelt ze dan met een ; of een &. Met de punt komma worden ze achter elkaar uitgevoerd en met de ampersand starten ze bijna vrijwel tegelijkertijd op. 0 18 * * 5 opdracht1 ; opdracht2In plaats van een getal op te geven, mag u ook reeks opgeven. Bijv. van maandag t/m vrijdag als 1-5. Met (alleen!) comma's kunt u meerdere getallen opgeven. Stel ik wil van 8 tot 17.45 uur iedere dag om het kwartier de post ophalen. En in het weekend om de twee uur. 0,15,30,45 8-17 * 1-5 /usr/bin/fetchmail -f /root/fetchmailrc* */2 * * 0,6 /usr/bin/fetchmail -f /root/fetchmailrcHierboven heb ik ook de slash geïntroduceerd. */2 op dagplaats betekent om de dag. */4 op de uurlokatie betekent om de vier uur. Gewoon op iedere dag (*) om het kwartier de post ophalen: 0,15,30,45 * * * * /usr/bin/fetchmail -f /etc/fetchmailrcWilt u niet dat er ieder kwartier een mail naar root gaat, verander het dan in: 0,15,30,45 * * * * /usr/bin/fetchmail -f /etc/fetchmailrc > /dev/nul 2>&1Ik gebruik meestal de Midnight Commander (mc) voor het bewerken van /etc/crontab. Maar de klassieke manier is gebruik van de opdracht crontab -e. Hiermee wordt de vi editor opgestart die (voor dit doel ) als volgt wordt bediend:
Het voordeel van de crontab -e(dit) methode is dat cron automatisch herstart wordt. Andere opties van crontab zijn -u(ser), -l(ist) en -d(elete). De bestanden worden in \var\spool\cron\tabs aangemaakt. Er vindt een eenvoudige syntax controle plaats. Want typt u in insert modus een * te weinig dan levert dit na het opslaan met :wq een foutmelding op: SHELL=/bin/shMAILTO=root# Draai om de 15 minuten fetchmail0,15,30,45 * * * /usr/bin/fetchmail -f /etc/fetchmailrc-- INSERT -- 2,15 All |
Cron onder SuSE |
De map /etc van Suse Linux bevat ook mappen als cron.daily, cron.hourly, cron.monthly en cron.weekly. Hier kunt shell scripts in plaatsen die dan op gezette tijden door cron ( via een /etc/crontab ingang voor /usr/lib/cron/run-crons) worden opgestart. Ik heb er ook een cron.nu.niet map aan toegevoegd, waarmee ik scripts (of hun symlinks) tijdelijk kan deactiveren. Zo staat er in cron.weekly een script dat wekelijks een backup maakt van /home en /root. mount /mnt/hdd2tar -czpvf /mnt/hdd2/archief/home-`date '+%d-%B-%Y'`.tgz /home /root exclude=*.mpg exclude=*.isoexit
|
|
Tijd>> Top << |
cal |
Cal ([maand]) [jaar] drukt een calender af sjoerd@laptop:~ > cal 12 4000december 4000zo ma di wo do vr za1 23 4 5 6 7 8 910 11 12 13 14 15 1617 18 19 20 21 22 2324 25 26 27 28 29 3031
|
date |
date drukt de huidige datum en tijd af. Toets date --help voor de vele opties voor scripts. |