• Reset your password

User account menu

  • Artikler
  • Forside
  • Forum
  • Nyheder
  • Log in
Hjem
Linuxin 2025

Breadcrumb

  • Hjem
  • forums
  • Automatisering med scripts

Hvad kan du med 100% sikkerhed sige, at du har stemt?

Valgmuligheder
Af Anonymous | 01.04.2004 09:56

Automatisering med scripts

Artikel

Kender du det at man hver dag skal ind og tjekke diverse sites ,for opdateringer til ens programmer som man bruger mest eller at disse sites ikke har en service der kan maile dig om nye releases.

Ved at lave et bash script er det muligt at få sin linux maskine til at gøre disse ting ,helt automatisk og det er faktisk ik så svært endda.



Start en konsol og SU til root ,browse hen til et dir hvor du vil have scriptet



brug cd til at browse med

[root@stargate /]# cd /kma-script



opret din fil med touch filnavn

[root@stargate kma-script]# touch kma-script



åben filen med din favorit editor

[root@stargate kma-script]# mc -e kma-script



<-------------------------------- script start -------------------------------->

#! /bin/bash



path=/mnt/winslow/uploads # sæt en variabel ,du kan kalde den hvad du vil

# hent hele sidens indhold med wget / -q = quiet -O = output to file

wget -q -O poll.log http://prdownloads.sourceforge.net/kma/

# list indholdet af outputfilen og smid unødvendige linier væk

cat poll.log | grep kma- | sed 's/ *.*kma///' | sed 's/">*.*//' > p.log

# slet outputfilen ,den skal ikke bruges mere

rm poll.log

# list indholdet af den sorterede fil og læs en linie af gangen

cat p.log |

while read line

do

# -e =exists tjekker nu om om filen findes i den satte variable+den læste linie i den sorterede fil

# den satte variabel er /mnt/winslow/uploads

if [ -e $path/$line ]

then

# hvis filen findes gives output til ingenting /dev/null hvis ik der er en kommando virker scriptet

# simpelthen ikke da der skal angives noget efter THEN og ELSE

echo "" > /dev/null

else

# hvis ikke filen findes så henter vi den med wget -q =quiet -b =background -P =output path

wget -q -b -P $path/ http://cesnet.dl.sourceforge.net/sourceforge/kma/$line > /dev/null

# her mailer vi at filen er hentet - $line giver output fra den læste fil ,dvs filnavnet

echo "Ny KMA Release :$line

http://10.0.0.3/upload/" | mail -s "New KMA Release" stargate > /dev/null

fi # if rutinen er slut

done # while rutinen er slut

rm p.log # sletter output filen

if [ -e wget-log* ] # hvis wget-log eller andre navne findes slettes de

then

rm wget-log*

fi # if rutinen er slut



exit 0 #exit scriptet

<-------------------------------- script slut -------------------------------->



du kan altid teste om scriptet virker som det skal ved at skrive

bash -x filnavn

i outputet kommer et + hvis det er ok og samtidig kan du se hvad der sker.

bare sørg for at et script aldrig giver noget output ,for ellers virker det ikke hvis du tilføjer det til

cron.



det scriptet i bund og grund gør ,er at den henter den angivne url's side og gemmer i en fil

derefter sorter den indholdet af filen og gemmer kun det vi ønsker ,derefter tjekker den ,den færdige fil ,linie for linie (hvis der er flere linier) og ser om filen findes i det dir som du angav i path

hvis ik filen fandtes så henter scriptet den selv og smider en mail afsted til en given bruger på det lokale system ,eller en mail adresse.



kommandoen sed er ret genial til at klippe erstatte ord med.

sed fungerer sådan set simpelt nok



sed 's/SØGEORD/ERSTATTE ORD/' - se mere i man sed og sed help



for at få scriptet til at virke skal det gøres eksekverbart med chmod a+x filnavn

nu kan du så kopiere scriptet over i enten cron.daily eller cron.hourly/cron.monthly

eller tilføje det til crontab med dine egne tidsindstillinger.



Dette script er bare et eksempel på noget af det man kan automatisere via scripts

brug jeres fantasi ,det er kun den der sætter grænser.



håber denne artikel kunne bruges af jer ,til at gøre nogle ting lettere eller bare lære lidt af.



PS. der er sikkert andre eller lettere måder at gøre det på ,men sådan her har jeg selv fusket mig frem til at gøre det.... jeg er på ingen måde mester i det her...



ved godt at den viste måde her skal omskrives med et par linier ,da filerne på sourceforge ikke ligger på alle mirrors og derfor vil sende en mail hvis filen findes men ikke hente den hvis den ikke ligger på det angivne mirror.



StarGate

  • Log in to post comments

Kommentarer

Svar søges

Den er go 0
Vil du have et sikrere og mere privat internet? Du skal blot installere Vivaldi-browseren med Proton VPN understøttelse! 0
14. februar = I Love Free Software Day 0
Lokal fil-deling - for de dovne. 0
Linux fra begynder til professionel af O'Reilly 0

Seneste aktivitet

2 stk Jolla C2 sælges 2
"Intet realistisk alternativ" - mig i r*ven 4
Test 2
Det første forumindlæg efter installation af Forum-modulet 8
Vanilla OS 12
Nye forum-indlæg viser sig kun 1 gang 1
Vil alle forumindlæg vise sig to gange 1
Hjælp til remote terminal vindue? 3
PCLinuxOS 19
Kan ikke boote på installation 24
80-20 reglen 1
Skærmlys fader ud på min bærbare 8
32 bit distro på max 700mb der stadig understøttes 26
Har vi nogen Linux konsulenter i Slagelse området? 3
Virkelig 7
gnome-software? 3
Archer T2U AC600 Wireless Dual Band USB Adapter 26
En farverig APT 3.0 udgivelse imponerer med sine nye funktioner 2
Unix's fødsel 2
Linux Mint 13

Copyright © 2025 Company Name - All rights reserved

Developed & Designed by Alaa Haddad