Документ Microsoft Office Word.docx
Запрограммируйте скрипт, удаляющий файлы, созданные в текущем каталоге в течении последних 15 минут и имеющих только права чтения для группы владельца файла.
#!/bin/shfind . -type f -perm 040 -cmin -15 -print0 | xargs -0 /bin/rm –f
Запрограммируйте скрипт, удаляющий все процессы с заданным именем и с заданным аргументом, запущенные определенным пользователем.
#!/bin/sh
if [ $# -lt 0 ]then echo "Too few arguments"exit 0fi
#Zapominaem imya processaproc=$2#Zapominaem argumentarg=$3#zapominaem imya polzovatelyauser=$1
for n in `ps --user $user -C $proc -o pid` do if [ $n != "PID" ] then kill -s 9 $n; fidone
Реализуйте ротацию файла лога с глубиной ротации до 5 файлов при достижении размера в 100 байт.
#!/bin/sha=`ls -la|grep 'r'|sort -g -k2`i=0;ii=0;index=0;for n in $ado 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 donei=0;while [ $i -lt $index ]do echo ${arr[i]}":"${arr1[i]} let i=$i+1;done
Распечатайте номера строк файлов, в который встречается определенное наперед заданное слово, и подсчитайте количество таких строк.
#!/bin/shif [ $# -lt 0 ]thenecho "Too few arguments"exit 0fi#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;
Распечатайте номера строк файлов, в который встречается заданное слово в середине строки
#!/bin/shif [ $# -lt 0 ]thenecho "Too few arguments"exit 0fi#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;
Распечатайте даты создания всей файлов размером более 10 байт, но менее 100 байт в текущем каталоге, выше стоящем каталоге и ниже стоящем каталоге с глубиной 2.#!/bin/sha=`find -P .. -maxdepth 2 -type f -size +10c -size -100c -exec ls -la {} \;`#echo $a;i=0;ii=0;index=0;for n in $ado 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 donei=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 $bdo 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 donei=0;while [ $i -lt $index ]do echo ${arr[i]}" "${arr1[i]}" "${arr2[i]}" "${arr3[i]} let i=$i+1;done
Распечатайте список имен глобальных переменных окружения (без значений), которые содержат строку "ell".
#!/bin/bashset|grep -E 'ELL|ell'|cut -d"=" -f1
Распечатайте имя команды и идентификатор процесса с максимальным приоритетом ( PRI и/или NICE). В случае равенства приоритетов выбрать последний элемент списка.
#!/bin/sha=`ps -do pri,pid`index=0i=0;for n in $ado 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 fidonei=1max=${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+1donea=`ps --pid=$max_pr -o pid,cmd`i=0for n in $ado let i=$i+1 if [ $i == 3 ] then first=$n; fi if [ $i == 4 ] then sec=$n; fi doneecho $first" "$sec