TwojePC.pl © 2001 - 2024
|
|
A R C H I W A L N A W I A D O M O Ś Ć |
|
|
|
Program kontrolujący wielkość wybranego pliku i alarmujący w razie przekroczenia , Feblo 7/09/11 13:20 Szukam programu, który monitorowałby wielkość zadanego (wskazanego) pliku i w wypadku przekroczenia przez plik określonej objętości - w jakikolwiek sposób alarmowałby o tym użytkownika.Wuj Mat w podróży ;) - proszem: , palioza 7/09/11 14:31
#!/bin/bash
MAX_SIZE=1000000
FNAME=dupa.txt
fsize=`stat -c%s $FNAME`
if [ $fsize -gt $MAX_SIZE ]
then
echo "PRZEKROCZONY"
fiUczyń coś idiotoodpornym, a ktoś
stworzy lepszą wersję idioty. - wlasnie , elliot_pl 7/09/11 14:35
pisalem cos podobnego :)momtoronomyotypaldollyochagi... - Dziękuję, teraz tylko... , Feblo 7/09/11 15:11
jeszcze bym prosił o małą instrukcję jak tego skryptu użyć.
Załóżmy, że plik do monitorowania to o:/maciek/outlookmb.pst
i wielkość krytyczna dla alarmu to 1900000000 bajtów.
Skrypt masm przekleić w notatnik, zapisać jako skrypt.bat i wrzucić w autostart, czy jak? Dodam, że jedno skanowanie dziennie (na rozruch komputera) mi w 100% wystarczy.
Z góry dzięki!Wuj Mat w podróży ;) - Powinienes napisac w temacie, ze chodzi Ci o Windows , palioza 7/09/11 15:23
dla mnie defaultowym systemem jest Linux, wiec na windowsie to niestety nie zadziala.Uczyń coś idiotoodpornym, a ktoś
stworzy lepszą wersję idioty. - moze jednak , RusH 7/09/11 15:32
http://win-bash.sourceforge.net/ :)I fix shit
http://raszpl.blogspot.com/
- Może to? , Tig3r 7/09/11 14:47
http://file-alert-monitor.software.informer.com/
Znalezione na szybko w googlu.- niestety nie... , Feblo 7/09/11 15:54
ponieważ ten program nie ma opcji określenia wielkości pliku, powyżej której robi alarm.
On alarmuje w przypadku KAŻDEJ zmiany pliku, ale jesteśmy bardzo blisko rozwiązania.
Problem konkretnie dotyczy puchnących plików PST od Outlooka, które po przekroczeniu 2GB się wykrzaczają. Dlatego właśnie trzeba je stale monitorować :(((((
W przypadku 20 użytkowników i 20 plików sprawa zaczyna być poważnie upierdliwa. Najlepiej byłoby wskazać folder i kazać programowi monitorować czy w jakimkolwiek podkatalogu plik nie przekracza zadanej granicy. Jednokrotny skan dziennie zupełnie wystarcza.Wuj Mat w podróży ;) - Znam ten ból z OE , Sherif 7/09/11 15:58
<package>
<job id="vbs">
<script language="VBScript">
Public Function PrzeiterujPoPlikach(SciezkaDoPlikow, LimitRozmiaru)
Dim fso, f, f1, fc, s, Rozmiar, Komunikat
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.GetFolder(SciezkaDoPlikow)
Set fc = f.Files
For Each f1 in fc
If (f1.name = "NazwaPliku.pst") Then
s = SciezkaDoPlikow & f1.name
Rozmiar = PodajRozmiarPliku(s)
If Rozmiar >= LimitRozmiaru Then
Komunikat = "Plik " & s & " osiągnął limit (" & LimitRozmiaru & " B) rozmiaru: " & Rozmiar & " B" & Chr(13) & Chr(10)
PrzeiterujPoPlikach = PrzeiterujPoPlikach & Komunikat
End If
End If
Next
End Function
Public Function PodajRozmiarPliku(Plik)
Dim fso, f
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.GetFile(Plik)
PodajRozmiarPliku = f.Size
End Function
On Error Resume Next
Result = PrzeiterujPoPlikach("t:\", 1.5*1024*1024*1024)
If Result <> "" Then MsgBox(Result)
</script>
</job>
</package> - Pełniejsza wersja, która działa z OE. Zapisz jako plik *.wsf , Sherif 7/09/11 16:18
<package>
<job id="vbs">
<script language="VBScript">
Public Function PrzeiterujPoTozsamosciach(SciezkaDoTozsamosci)
Dim fso, f, f1, fc, s
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.GetFolder(SciezkaDoTozsamosci)
Set fc = f.SubFolders
For Each f1 in fc
s = SciezkaDoTozsamosci & f1.name & "\Microsoft\Outlook Express\"
PrzeiterujPoTozsamosciach = PrzeiterujPoTozsamosciach & PrzeiterujPoPlikach(s, 1.5*1024*1024*1024)
Next
End Function
Public Function PrzeiterujPoPlikach(SciezkaDoPlikow, LimitRozmiaru)
Dim fso, f, f1, fc, s, Rozmiar, Komunikat
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.GetFolder(SciezkaDoPlikow)
Set fc = f.Files
For Each f1 in fc
If (f1.name = "Skrzynka odbiorcza.dbx") or (f1.name = "Elementy wysłane.dbx") or (f1.name = "Elementy usunięte.dbx") Then
s = SciezkaDoPlikow & f1.name
Rozmiar = PodajRozmiarPliku(s)
If Rozmiar >= LimitRozmiaru Then
Komunikat = "Plik " & s & " osiągnął limit (" & LimitRozmiaru & " B) rozmiaru: " & Rozmiar & " B" & Chr(13) & Chr(10)
PrzeiterujPoPlikach = PrzeiterujPoPlikach & Komunikat
End If
End If
Next
End Function
Public Function PodajRozmiarPliku(Plik)
Dim fso, f
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.GetFile(Plik)
PodajRozmiarPliku = f.Size
End Function
Public Sub UsunPlikWynikowy(Plik)
On Error Resume Next
Dim fso, MyFile
Set fso = CreateObject("Scripting.FileSystemObject")
If fso.FileExists(Plik) Then
Set MyFile = fso.GetFile(Plik)
MyFile.Delete(True)
End If
End Sub
Public Sub UtworzPlikWynikowy(Plik, Tresc)
Dim fso, MyFile
Set fso = CreateObject("Scripting.FileSystemObject")
Set MyFile = fso.CreateTextFile(Plik, True)
MyFile.Write(Tresc)
MyFile.Close
End Sub
Public Sub SprawdzRozmiarSkrzynekPocztowych
Dim PlikWynikowy, Wynik
PlikWynikowy = "p:\skrypty\" & komputer & "-" & login & ".txt"
UsunPlikWynikowy PlikWynikowy
Wynik = PrzeiterujPoTozsamosciach(PodajSciezkeBazowa)
If Wynik <> "" Then UtworzPlikWynikowy PlikWynikowy, Wynik
End Sub
Public Function PodajSciezkeBazowa
Dim WshShell
Set WshShell = CreateObject("WScript.Shell")
PodajSciezkeBazowa = WshShell.ExpandEnvironmentStrings("%USERPROFILE%") & "\Ustawienia lokalne\Dane aplikacji\Identities\"
End Function
On Error Resume Next
Set WshNetwork = WScript.CreateObject("WScript.Network")
Set WshShell = WScript.CreateObject("WScript.Shell")
login = WshNetwork.UserName
komputer = WshNetwork.ComputerName
SprawdzRozmiarSkrzynekPocztowych
</script>
</job>
</package>- wow a Palioza , Killer 7/09/11 16:58
napisał to w 8 linijkach :PKiedyś normą był ogół a nie margines... - tylko ze dupe.txt sprawdzil , faf 7/09/11 17:39
i dalej jest w dupie
w zwyklym cmd zajmuje to 1 linijke i co ? moze dosowo windziarska powloka jest lepsza od bashowej wywloki?
for %i in (C:\dupa.txt) do @if %~zi GTR 100000 echo masz za duza dupe.txt- Nie dziala. , Quad 7/09/11 21:20
123- co nie dziala ? , faf 7/09/11 21:45
a masz na C: plik dupa.txt wiekszy niz 100000 bajtow ?
lopatologicznie:
dla (pliku dupa.txt) jezeli wielkosc wieksza niz 100000 to wypisz blabla
parametry i wskazniki w cmd maja naprawde fajne ficzery choc slabo udokumentowane
wieksza jazda to operacje na stringach za pomoca wskaznikow i zmiennych- No poprostu nie dziala, , Quad 7/09/11 23:01
wkleilem w .bat, uruchamiam i dostaje:
"W tym momencie ~zi było nieoczekiwane."
Pod win7 64 bit. No ale zeby nie bylo, jak odpale z linii polecen to jest ok ;)- jesli odpalasz w skrypcie , faf 8/09/11 09:07
to uzywasz nie zmiennej % tylko wskaznika zmiennej %%
wiec zrob z procentow promile i bedzie dzialac :)
- Jestes wielki!!! Potrzebuje tylko... , Feblo 8/09/11 08:40
zidentyfikowac gdzie w skaldni calego skryptu mam powstawiac swoje dane typu sciezki dostepu, zadana maksymalna wielkosc pliku itd. gdzies wpisac - gdzie? Niestety nie znam skladni jakiej uzyles, wiec nie chce czegos nakaszanic.
System to WIN XP 32, sciezka do wszystkich plikow poczty to oddzielny dysk Q:\ i jego podkatalogi (posegregowane po uzytkownikach, tak dla uzytkownikow O jak OE).
Maksymalny limit pliku, przy ktorym powinien wywalac komunikat to 1900000000 bajtow;
Ten plik myślę uruchamiać z autostartu? czy też on będzie działał w tle i stale monitorował pliki?
Jeśli wchodzimy w zbyt duży poziom szczegółowości, to proponuję mailowo
Z góry BARDZO Ci dziękuję.Wuj Mat w podróży ;) - Skrobnę maila , Sherif 8/09/11 08:45
123- WIEEELKIE DZIEKI RAZ JESZCZE! , Feblo 12/09/11 09:26
Skrypt działa 100% jak należy i dzięki niemu mam nadzieję znakomicie ułatwić sobie życie.
Ukłony i pozdrowienia.Wuj Mat w podróży ;)
|
|
|
|
|
All rights reserved ® Copyright and Design 2001-2024, TwojePC.PL |
|
|
|
|