User:Iambos

From ICO wiki

Quest 18

#!/bin/bash
#Autor Ivar Ambos
#Rühm A22
#Versioon: 0.2
#Skript kopeerib viimati kasutatud failid erinevatesse kaustadesse.

#Oiguste kontroll
if [ "$UID" -ne "0" ]
then
	echo "Kaivita see skript root oigustes"
	exit 1
fi

#Sisestatakse kasutaja
echo "Sisesta kasutaja"
read KASUTAJA

#Kasutaja kontroll
kontroll=$(grep "$KASUTAJA" /etc/passwd |cut -d ":" -f1 )
if [ "$kontroll" = "$KASUTAJA" ]; then
	echo "Sisestatud kasutaja $KASUTAJA on olemas"
else 
	echo "Sellist kasutajat $KASUTAJA ei ole, sisesta uus kasutaja"
	exit 1
fi

#Kataloogi kontroll
if [ -d /home/$KASUTAJA/kakspaeva ]; then
	echo "kaust kakspaeva on juba olemas"
#Kustutatakse kaust koos sisuga, kasutajale oeldakse, et kustutatakse kausta sisu.
	$( rm -r /home/$KASUTAJA/kakspaeva )	
	echo "Kustutan kaustast failid"
	mkdir /home/$KASUTAJA/kakspaeva
else
	echo "Loon kausta kakspaeva"
	mkdir /home/$KASUTAJA/kakspaeva
fi

echo "Otsin faile mida on viimati muudetud vahem kui 2 paeva tagasi..."

#Otsingu kriteeriumid. Skriptis on eeldatud, et kasutaja kodukataloog 
#asub home kataloogis. Otsitakse koiki faile valjaarvatud peidetud failid.
#Faile otsitakse viimase muutmise aja jargi. 

otsi=$(find /home/$KASUTAJA -type f \( ! -regex ".*/\..*" \) -mtime -2)

#kontrollitakse otsingu tulemust
if [ ! -n "$otsi" ]; then
	echo "Otsingu kriteeriumitele vastavaid faile ei leitud"	
else
	
#Kopeeritakse leitud failid
	$(cp -rfp $otsi /home/$KASUTAJA/kakspaeva )	
	echo "Leitud failid kopeeriti kausta kakspaeva, "
fi
#Valjastatakse kopeeritud failide arv
failidearv=$(ls /home/$KASUTAJA/kakspaeva | wc -l)
echo "Kokku kopeeriti $failidearv faili."


if [ -d /home/$KASUTAJA/seitsepaeva ]; then
	echo "kaust seitsepaeva on juba olemas"
	$( rm -r /home/$KASUTAJA/seitsepaeva )	
	echo "Kustutan kaustast failid"
	mkdir /home/$KASUTAJA/seitsepaeva
else
	echo "Loon kausta seitsepaeva"
	mkdir /home/$KASUTAJA/seitsepaeva
fi
echo "Otsin faile mida on viimati muudetud 2 - 7 paeva tagasi..."

otsi=$(find /home/$KASUTAJA -type f \( ! -regex ".*/\..*" \) -mtime 2 -mtime -7)

if [ ! -n "$otsi" ]; then
	echo "Otsingu kriteeriumitele vastavaid faile ei leitud"	
else	
	$(cp -rfp $otsi /home/$KASUTAJA/seitsepaeva )	
	echo "Leitud failid kopeeriti kausta seitsepaeva"
fi
failidearv=$(ls /home/$KASUTAJA/seitsepaeva | wc -l)
echo "Kokku kopeeriti $failidearv faili."


if [ -d /home/$KASUTAJA/neliteistpaeva ]; then
	echo "kaust neliteistpaeva on juba olemas"
	$( rm -r /home/$KASUTAJA/neliteistpaeva )	
	echo "Kustutan kaustast failid"
	mkdir /home/$KASUTAJA/neliteistpaeva
else
	echo "Loon kausta neliteistpaeva"
	mkdir /home/$KASUTAJA/neliteistpaeva
fi
echo "Otsin faile mida on viimati muudetud 8 - 14 paeva tagasi..."

otsi=$(find /home/$KASUTAJA -type f \( ! -regex ".*/\..*" \) -mtime 8 -mtime -14)

if [ ! -n "$otsi" ]; then
	echo "Otsingu kriteeriumitele vastavaid faile ei leitud"	
else	
	$(cp -rfp $otsi /home/$KASUTAJA/neliteistpaeva )	
	echo "Leitud failid kopeeriti kausta neliteistpaeva"
fi
failidearv=$(ls /home/$KASUTAJA/neliteistpaeva | wc -l)
echo "Kokku kopeeriti $failidearv faili."


if [ -d /home/$KASUTAJA/viisteistpaeva ]; then
	echo "kaust viisteistpaeva on juba olemas"
	$( rm -r /home/$KASUTAJA/viisteistpaeva )	
	echo "Kustutan kaustast failid"
	mkdir /home/$KASUTAJA/viisteistpaeva
else
	echo "Loon kausta viisteistpaeva"
	mkdir /home/$KASUTAJA/viisteistpaeva
fi
echo "Otsin faile mida on viimati muudetud 15 - 29 paeva tagasi..."

otsi=$(find /home/$KASUTAJA -type f \( ! -regex ".*/\..*" \) -mtime 15 -mtime -29)

if [ ! -n "$otsi" ]; then
	echo "Otsingu kriteeriumitele vastavaid faile ei leitud"	
else	
	$(cp -rfp $otsi /home/$KASUTAJA/viisteistpaeva )	
	echo "Leitud failid kopeeriti kausta viisteistpaeva"
fi
failidearv=$(ls /home/$KASUTAJA/viisteistpaeva | wc -l)
echo "Kokku kopeeriti $failidearv faili."


if [ -d /home/$KASUTAJA/vanemad ]; then
	echo "kaust vanemad on juba olemas"
	$( rm -r /home/$KASUTAJA/vanemad )	
	echo "Kustutan kaustast failid"
	mkdir /home/$KASUTAJA/vanemad
else
	echo "Loon kausta vanemad"
	mkdir /home/$KASUTAJA/vanemad
fi
echo "Otsin faile mida on viimati muudetud 30 voi rohkem paeva tagasi..."

otsi=$(find /home/$KASUTAJA -type f \( ! -regex ".*/\..*" \) -mtime +30)

if [ ! -n "$otsi" ]; then
	echo "Otsingu kriteeriumitele vastavaid faile ei leitud"	
else	
	$(cp -rfp $otsi /home/$KASUTAJA/vanemad )	
	echo "Leitud failid kopeeriti kausta vanemad"
fi
failidearv=$(ls /home/$KASUTAJA/vanemad | wc -l)
echo "Kokku kopeeriti $failidearv faili."

echo "Failid on kopeeritud ja sorteeritud nende muutmise aja jargi"
#skript läheb sleepi ja hakkab uuesti tööle 48 tunni pärast
skriptiasukoht=$(readlink -f $0)
sleep 172800 && $skriptiasukoht

Powershelli kodutöö

Skript näitab ühendatud kettaid, kuvab partitsioonid ja loogilised kettad. Näitab ketta suuruseid, kasutatud ja vaba ketta ruumi.

#Autor Ivar Ambos
#Rühm A22
#Versioon: 0.1
Write-Host "--Ühendatud kettad.--" -foregroundcolor White -backgroundcolor Red

#loetakse vajalik info muutujasse
$ketas = Get-WmiObject Win32_Diskdrive
#Kaidakse muutuja labi ja prinditakse tulemus
foreach ($diskdrive in $ketas) {
    Write-Host "*********************" -foregroundcolor red
    #Ketta indeks 
    Write-Host "Ketas:" $diskdrive.Index 
    #Leitakse ketta suurus, teisendatakse gigabaidiks ja valjastatakse kolm koma kohta 
    Write-Host "Kõvaketta suurus:" ($diskdrive.Size/1GB).ToString("0.000") "GB"
    #prinditakse ketta partitisioonid
    foreach($diskpartition in $diskdrive.getrelated("win32_diskpartition")){ 
    Write-Host "Partitsioon:" $diskpartition.NAME
    Write-Host "Suurus:" ($diskpartition.Size/1GB).ToString("0.000") "GB"  
    #prinditakse loogiliste ketaste informatsioon
    foreach($LOGICALDRIVE in $diskpartition.getrelated("win32_logicaldisk")){ 
    write-host "Loogiline ketas:" $LOGICALDRIVE.name 
    write-host "Loogilise ketta nimi:" $LOGICALDRIVE.volumename 
    write-host "Suurus:" ($logicaldrive.size/1GB).ToString("0.000") "GB" 
    write-host "Vaba ruum:" ($logicaldrive.FreeSpace/1GB).ToString("0.000") "GB"
    write-host "Kasutatud:" ((($logicaldrive.size - $logicaldrive.freespace)/1GB).ToString("0.000") ) "GB" 
    }   
    }
}

Pythoni kodutöö

Skript teeb uue kasutaja ja parooli.

#!/usr/bin/python
# -*- coding: utf-8 -*-
#Autor Ivar Ambos A22
#Versioon 0.1
#Uue kasutaja ja parooli lisamine. Antud skript ei kontrolli kasutaja olemasolu. Kodukataloog tehakse /home/ kataloogi.
#Skripti on testitud Ubuntu 10.10 versiooniga.
 
import sys
import os

if len(sys.argv) == 3:
    kasutaja = (sys.argv[1])
    parool = (sys.argv[2])
    #Õiguste kontroll.
    if os.getuid() != 0:
        print "Käivita skript juur õigustes!"       
    else:
        #Tehakse kodukataloog ja määratakse kasutajale parool.              
        os.system ("useradd -m -d /home/"+kasutaja+" "+kasutaja+" ")
        os.system ("echo "+kasutaja+":"+parool+"| chpasswd ")       
        print "Loodi kasutaja "+kasutaja+" "
else: 
    print "Kasuta skripti järgmiselt: lisa_kasutaja.py <kasutaja> <parool>"