/ Forside / Teknologi / Operativsystemer / Linux / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Linux
#NavnPoint
o.v.n. 11177
peque 7911
dk 4814
e.c 2359
Uranus 1334
emesen 1334
stone47 1307
linuxrules 1214
Octon 1100
10  BjarneD 875
Overvåge størrelsen af en fil
Fra : Mads Bondo Dydensbor~


Dato : 06-01-06 20:04

Hej

Findes der et lille util der overvåger størrelsen af en fil og sender mig en
mail, hvis den når over en hvis størrelse?

(Kunne ikke lige finde noget på Google, og gider ikke cron-perle noget selv
lige nu

Mads

--
Mads Bondo Dydensborg mads@dydensborg.dk http://www.madsdydensborg.dk/

United States Patent 6,368,227:
A method of swing on a swing is disclosed, in which a user positioned on a
standard swing suspended by two chains from a substantially horizontal tree
branch induces side to side motion by pulling alternately on one chain and
then the other.
-- This is not a joke - go look it up.


 
 
Kristian Vilmann (06-01-2006)
Kommentar
Fra : Kristian Vilmann


Dato : 06-01-06 21:22

Mads Bondo Dydensborg wrote:
> Hej
>
> Findes der et lille util der overvåger størrelsen af en fil og sender mig en
> mail, hvis den når over en hvis størrelse?
>
> (Kunne ikke lige finde noget på Google, og gider ikke cron-perle noget selv
> lige nu

Tripwire kan vel, men det er måske lidt overkill....

/k

Mads Bondo Dydensbor~ (07-01-2006)
Kommentar
Fra : Mads Bondo Dydensbor~


Dato : 07-01-06 00:16

Kristian Vilmann wrote:

> Mads Bondo Dydensborg wrote:
>> Hej
>>
>> Findes der et lille util der overvåger størrelsen af en fil og sender mig
>> en mail, hvis den når over en hvis størrelse?
>>
>> (Kunne ikke lige finde noget på Google, og gider ikke cron-perle noget
>> selv lige nu
>
> Tripwire kan vel, men det er måske lidt overkill....

Jow... det ville jeg nok mene

Anyway, jeg har kombineret Thomas og Michaels forslag:

#!/bin/bash

set -e

MAILADDR=
MAXSIZE=
FILE=
CURSIZE=$(du -m $FILE | cut -f1)
if [ $CURSIZE -gt $MAXSIZE ] ; then
 echo -e "Max size: $MAXSIZE\nCur size: $CURSIZE\n" | mail \
    -s "File $FILENAME has excided limit!" $MAILADDR
fi

Tak til alle.

Mads

--
Mads Bondo Dydensborg mads@dydensborg.dk http://www.madsdydensborg.dk/

I find the whole business of religion profoundly interesting. But it
does mystify me that otherwise intelligent people take it seriously.
- Douglas Adams


Mads Bondo Dydensbor~ (07-01-2006)
Kommentar
Fra : Mads Bondo Dydensbor~


Dato : 07-01-06 00:27

Mads Bondo Dydensborg wrote:

> Kristian Vilmann wrote:
>
>> Mads Bondo Dydensborg wrote:
>>> Hej
>>>
>>> Findes der et lille util der overvåger størrelsen af en fil og sender
>>> mig en mail, hvis den når over en hvis størrelse?
>>>
>>> (Kunne ikke lige finde noget på Google, og gider ikke cron-perle noget
>>> selv lige nu
>>
>> Tripwire kan vel, men det er måske lidt overkill....
>
> Jow... det ville jeg nok mene
>
> Anyway, jeg har kombineret Thomas og Michaels forslag:

Og introduceret en bug. Flot, flot...

>
> #!/bin/bash
>
> set -e
>
> MAILADDR=
> MAXSIZE=
> FILE=
FILENAME

Mads

--
Mads Bondo Dydensborg mads@dydensborg.dk http://www.madsdydensborg.dk/

You may not use the Software in connection with any site that disparages
Microsoft, MSN, MSNBC, Expedia, or their products or services, infringe any
intellectual property or other rights of these parties, violate any state,
federal or international law, or promote racism, hatred or pornography.
- Part of MS Frontpage 2002 EULA


Mads Bondo Dydensbor~ (07-01-2006)
Kommentar
Fra : Mads Bondo Dydensbor~


Dato : 07-01-06 00:33

Mads Bondo Dydensborg wrote:

> Mads Bondo Dydensborg wrote:
>
>> Kristian Vilmann wrote:
>>
>>> Mads Bondo Dydensborg wrote:
>>>> Hej
>>>>
>>>> Findes der et lille util der overvåger størrelsen af en fil og sender
>>>> mig en mail, hvis den når over en hvis størrelse?
>>>>
>>>> (Kunne ikke lige finde noget på Google, og gider ikke cron-perle noget
>>>> selv lige nu
>>>
>>> Tripwire kan vel, men det er måske lidt overkill....
>>
>> Jow... det ville jeg nok mene
>>
>> Anyway, jeg har kombineret Thomas og Michaels forslag:
>
> Og introduceret en bug. Flot, flot...
>
>>
>> #!/bin/bash
>>
>> set -e
>>
>> MAILADDR=
>> MAXSIZE=
>> FILE=
> FILENAME

Som så også skal kaldes i du... argh, forkert tidspunkt at lave den slags
på. Anyway, her kommer den så. Altid flere linier end man håber på, man
skal jo også sætte et flag, så man ikke få en milliard mails (formattering
lidt knækket):

#!/bin/sh

set -e

MAILADDR=
MAXSIZE=
FILENAME=

FLAG=$HOME/.check_file_size

if [ -e "$FLAG" ] ; then
exit 0
fi

CURSIZE=$(du -m $FILENAME | cut -f1)

if [ $CURSIZE -gt $MAXSIZE ] ; then
touch $FLAG
echo -e "Max size: $MAXSIZE MB\nCurrrent size: $CURSIZE MB\n\nFlag
($FLAG) created, remember to remove it" |\
mail -s "File $FILENAME has exceeded limit!" $MAILADDR
fi

godnat

Mads

--
Mads Bondo Dydensborg mads@dydensborg.dk http://www.madsdydensborg.dk/

The Bible tells us to be like God, and then on page after page it describes
God as a mass murderer. This may be the single most important key to the
political behavior of Western Civilization.
- Robert A. Wilson (Right Where You Are Sitting Now)


Thomas Rasmussen (06-01-2006)
Kommentar
Fra : Thomas Rasmussen


Dato : 06-01-06 21:28

Mads Bondo Dydensborg wrote:
> Hej
>
> Findes der et lille util der overvåger størrelsen af en fil og sender mig en
> mail, hvis den når over en hvis størrelse?
>
> (Kunne ikke lige finde noget på Google, og gider ikke cron-perle noget selv
> lige nu

Ahr, du skal da lige være lidt opfindsom... Der findes sikkert bedre
måder, men det her var lige hvad jeg kunne komme på

MAXSIZE skal være i bytes, eller hvis du kobler -k på SIZE kommandoen
kan den være i kb, men så skal der måske lige laves noget behandling af
output fra du.

#!/bin/sh
MAXSIZE="2048"
FILE="$HOME/myfile"
SIZE=`du $FILE|awk {'print $1'}`
if [ "$SIZE" -gt "$MAXSIZE" ] ; then
do_your_mail_stuff
fi

Dette smides i et script der sættes til at køre via cron når det passer
dig. Ingen grund til at lave det stort og fancy.

Thomas

Michael Rasmussen (06-01-2006)
Kommentar
Fra : Michael Rasmussen


Dato : 06-01-06 22:02

On Fri, 06 Jan 2006 20:03:44 +0100, Mads Bondo Dydensborg wrote:

>
> (Kunne ikke lige finde noget på Google, og gider ikke cron-perle noget selv
> lige nu
Hvorfor bruge perl, når man kan lave det med sh?

#!/bin/sh

set -e

MAILADDR=
FILENAME=
MAXSIZE=
CURSIZE=$(ls -l "$FILENAME" | cut -d' ' -f5)

if [ $CURSIZE -gt $MAXSIZE ]; then
echo -e "Max size: $MAXSIZE\nCur size: $CURSIZE\n" | mail \
-s "File $FILENAME has excided limit!" $MAILADDR
fi

exit 0

--
Hilsen/Regards
Michael Rasmussen
http://keyserver.veridis.com:11371/pks/lookup?op=get&search=0xE3E80917


Peter Jensen (07-01-2006)
Kommentar
Fra : Peter Jensen


Dato : 07-01-06 01:01

Michael Rasmussen wrote:

> CURSIZE=$(ls -l "$FILENAME" | cut -d' ' -f5)

Forkert field når jeg tester det på mit system. Hvad er der forresten i
vejen med 'stat -c%s'?

--
PeKaJe

Always code as if the guy who ends up maintaining your code will be a
violent psychopath who knows where you live. -- Martin Golding

Michael Rasmussen (07-01-2006)
Kommentar
Fra : Michael Rasmussen


Dato : 07-01-06 01:23

On Sat, 07 Jan 2006 00:01:01 +0000, Peter Jensen wrote:

>
> Forkert field når jeg tester det på mit system. Hvad er der forresten i
> vejen med 'stat -c%s'?
Hvilket system tester du på?
--
Hilsen/Regards
Michael Rasmussen
http://keyserver.veridis.com:11371/pks/lookup?op=get&search=0xE3E80917


Peter Jensen (07-01-2006)
Kommentar
Fra : Peter Jensen


Dato : 07-01-06 17:26

Michael Rasmussen wrote:

>> Forkert field når jeg tester det på mit system. Hvad er der
>> forresten i vejen med 'stat -c%s'?
>
> Hvilket system tester du på?

Gentoo Linux (x86). At bruge ' ' som delimiter til cut forudsætter at
der er lige mange mellemrum mellem felterne i "ls -l" outputtet, hvilket
langt fra er garanteret. Noget andet er så at ikke alle Unix systemer
har 'stat' kommandoen installeret (f.eks. har jeg set kommandoen mangle
på nogle SunOS systemer, men generelt burde GNU kompatible systemer have
den). Et alternativ kunne være 'wc -c filnavn', men afhængig af
implementation kan performance være suboptimal for hyppig brug.

--
PeKaJe
Sit back and watch the messages. This is actually more important than one
might think as there is a bug in GNU Mach whereby hitting a key during the
boot process causes the kernel to panic -- GNU Hurd Installation Guide

Michael Rasmussen (07-01-2006)
Kommentar
Fra : Michael Rasmussen


Dato : 07-01-06 18:04

On Sat, 07 Jan 2006 16:26:27 +0000, Peter Jensen wrote:

>
> Gentoo Linux (x86). At bruge ' ' som delimiter til cut forudsætter at
> der er lige mange mellemrum mellem felterne i "ls -l" outputtet, hvilket
> langt fra er garanteret. Noget andet er så at ikke alle Unix systemer
Det tror jeg nu ikke du har ret i. cut vil blot søge videre til næste
tegn/sekvens, der ikke er lig med delimiter.

--
Hilsen/Regards
Michael Rasmussen
http://keyserver.veridis.com:11371/pks/lookup?op=get&search=0xE3E80917


Klaus Ellegaard (07-01-2006)
Kommentar
Fra : Klaus Ellegaard


Dato : 07-01-06 18:22

Michael Rasmussen <mir@miras.org> writes:

>> der er lige mange mellemrum mellem felterne i "ls -l" outputtet, hvilket
>> langt fra er garanteret. Noget andet er så at ikke alle Unix systemer
>Det tror jeg nu ikke du har ret i. cut vil blot søge videre til næste
>tegn/sekvens, der ikke er lig med delimiter.

Nope.

$ echo "1-2-3-4-5" | cut -d- -f3
3
$ echo "1--2--3--4--5" | cut -d- -f3
2
$ echo "1---2---3---4---5" | cut -d- -f3
(blank fordi der ikke står noget i felt 3)

Mvh.
   Klaus.

Kent Friis (07-01-2006)
Kommentar
Fra : Kent Friis


Dato : 07-01-06 18:25

Den Sat, 07 Jan 2006 18:03:31 +0100 skrev Michael Rasmussen:
> On Sat, 07 Jan 2006 16:26:27 +0000, Peter Jensen wrote:
>
>>
>> Gentoo Linux (x86). At bruge ' ' som delimiter til cut forudsætter at
>> der er lige mange mellemrum mellem felterne i "ls -l" outputtet, hvilket
>> langt fra er garanteret. Noget andet er så at ikke alle Unix systemer
> Det tror jeg nu ikke du har ret i. cut vil blot søge videre til næste
> tegn/sekvens, der ikke er lig med delimiter.

Hvis du mener at cut -d' ' er ligeglad med om der står "a b" eller
"a b", så tager du fejl. Det virker præcist ligesom med
cut -d: og der kan vi jo lige tage passwd-filen som eksempel:

root:x:0:0:root
root::0:0:root

cut -d: -f2 vil her give "x" og "", IKKE "0". Det samme ved flere
mellemrum efter hinanden.

Mvh
Kent
--
Hard work may pay off in the long run, but laziness pays off right now.

Peter Jensen (08-01-2006)
Kommentar
Fra : Peter Jensen


Dato : 08-01-06 17:25

Michael Rasmussen wrote:

>> Gentoo Linux (x86). At bruge ' ' som delimiter til cut forudsætter
>> at der er lige mange mellemrum mellem felterne i "ls -l" outputtet,
>> hvilket langt fra er garanteret.
>
> Det tror jeg nu ikke du har ret i. cut vil blot søge videre til næste
> tegn/sekvens, der ikke er lig med delimiter.

Baserer du din udtalelse på et praktisk forsøg, eller er det bare noget
du tror? Jeg har testet på Gentoo, Debian, og SunOS maskiner, og alle
opfører sig som jeg har beskrevet.

--
PeKaJe

For those who like this sort of thing, this is the sort of thing they like.
      -- Abraham Lincoln

Peter Mogensen (07-01-2006)
Kommentar
Fra : Peter Mogensen


Dato : 07-01-06 23:50

Mads Bondo Dydensborg wrote:
> Hej
>
> Findes der et lille util der overvåger størrelsen af en fil og sender mig en
> mail, hvis den når over en hvis størrelse?

Linux har fam(3),famd(8). Jeg ved ikke om det kan scriptes. Det kunne
det tilsvarende under BeOS.

Peter

Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408527
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste