Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Открытые системы / Храмцов / Документ Microsoft Office Word

.docx
Скачиваний:
27
Добавлен:
10.05.2014
Размер:
22.11 Кб
Скачать
  1. Запрограммируйте скрипт, удаляющий файлы, созданные в текущем каталоге в течении последних 15 минут и имеющих только права чтения для группы владельца файла.

#!/bin/sh

find . -type f -perm 040 -cmin -15 -print0 | xargs -0 /bin/rm –f

  1. Запрограммируйте скрипт, удаляющий все процессы с заданным именем и с заданным аргументом, запущенные определенным пользователем.

#!/bin/sh

if [ $# -lt 0 ]

then

echo "Too few arguments"

exit 0

fi

#Zapominaem imya processa

proc=$2

#Zapominaem argument

arg=$3

#zapominaem imya polzovatelya

user=$1

for n in `ps --user $user -C $proc -o pid`

do

if [ $n != "PID" ]

then

kill -s 9 $n;

fi

done

  1. Реализуйте ротацию файла лога с глубиной ротации до 5 файлов при достижении размера в 100 байт.

#!/bin/sh

a=`ls -la|grep 'r'|sort -g -k2`

i=0;

ii=0;

index=0;

for n in $a

do

let i=$i+1;

if [ $i == 2 ]

then

arr[$index]=$n

fi

if [ $i > 2 ]

then

let ii=$ii+1

fi

if [ $ii == 5 ]

then

arr1[$index]=$n

let index=$index+1;

fi

if [ $i == 9 ]

then

i=0

ii=0

fi

done

i=0;

while [ $i -lt $index ]

do

echo ${arr[i]}":"${arr1[i]}

let i=$i+1;

done

  1. Распечатайте номера строк файлов, в который встречается определенное наперед заданное слово, и подсчитайте количество таких строк.

#!/bin/sh

if [ $# -lt 0 ]

then

echo "Too few arguments"

exit 0

fi

#grep -n $1 *

grep -n $1 * |awk 'BEGIN{FS=":"};{print $1":"$2;};END{ FS="\n"; print ""}'

items=`grep -n $1 * |awk 'BEGIN{FS=":[:digit]"};{print $2};END{ FS="\n"; print ""}'| wc -l`

let items=$items-1;

echo $items;

  1. Распечатайте номера строк файлов, в который встречается заданное слово в середине строки

#!/bin/sh

if [ $# -lt 0 ]

then

echo "Too few arguments"

exit 0

fi

#grep -n ".$1" *

grep -n ".$1." * |awk 'BEGIN{FS=":"};{print $1":"$2;};END{ FS="\n"; print ""}'

items=`grep -n ".$1." * |awk 'BEGIN{FS=":[:digit]"};{print $2};END{ FS="\n"; print ""}'| wc -l`

let items=$items-1;

echo $items;

  1. Распечатайте даты создания всей файлов размером более 10 байт, но менее 100 байт в текущем каталоге, выше стоящем каталоге и ниже стоящем каталоге с глубиной 2.

#!/bin/sh

a=`find -P .. -maxdepth 2 -type f -size +10c -size -100c -exec ls -la {} \;`

#echo $a;

i=0;

ii=0;

index=0;

for n in $a

do

let i=$i+1;

if [ $i == 6 ]

then

arr[$index]=$n

fi

if [ $i == 7 ]

then

arr1[$index]=$n

fi

if [ $i == 8 ]

then

arr2[$index]=$n

fi

if [ $i == 9 ]

then

arr3[$index]=$n

i=0

let index=$index+1

fi

done

i=0;

while [ $i -lt $index ]

do

echo ${arr[i]}" "${arr1[i]}" "${arr2[i]}" "${arr3[i]}

let i=$i+1;

done

b=`find -P . -mindepth 2 -maxdepth 3 -type f -size +10c -size -100c -exec ls -la {} \;`

#echo $b

i=0;

ii=0;

index=0;

for n in $b

do

let i=$i+1;

if [ $i == 6 ]

then

arr[$index]=$n

fi

if [ $i == 7 ]

then

arr1[$index]=$n

fi

if [ $i == 8 ]

then

arr2[$index]=$n

fi

if [ $i == 9 ]

then

arr3[$index]=$n

i=0

let index=$index+1

fi

done

i=0;

while [ $i -lt $index ]

do

echo ${arr[i]}" "${arr1[i]}" "${arr2[i]}" "${arr3[i]}

let i=$i+1;

done

  1. Распечатайте список имен глобальных переменных окружения (без значений), которые содержат строку "ell".

#!/bin/bash

set|grep -E 'ELL|ell'|cut -d"=" -f1

  1. Распечатайте имя команды и идентификатор процесса с максимальным приоритетом ( PRI и/или NICE). В случае равенства приоритетов выбрать последний элемент списка.

#!/bin/sh

a=`ps -do pri,pid`

index=0

i=0;

for n in $a

do

let i=$i+1;

if [ $i == 1 ]

then

arr[$index]=$n

fi

if [ $i == 2 ]

then

arr1[$index]=$n

let index=$index+1

i=0

fi

done

i=1

max=${arr[$i]}

while (( $i < $index ))

do

temp=${arr[i]}

if [ "$temp" -ge "$max" ]

then

max_pr=${arr1[i]}

max=${arr[i]}

fi

let i=$i+1

done

a=`ps --pid=$max_pr -o pid,cmd`

i=0

for n in $a

do

let i=$i+1

if [ $i == 3 ]

then

first=$n;

fi

if [ $i == 4 ]

then

sec=$n;

fi

done

echo $first" "$sec

Соседние файлы в папке Храмцов