Посчитать суммарый объём файлов с расширением dbf:
Скрипт du_dbf:
#!/bin/sh find /eis -type f -name *.dbf -exec du -km {} \;| gawk \ '{ sum += $1 }; END { print sum " Mb - summary size of dbf-files" }'
Найти самый большой по объёму файл с расширением dbf и указать его имя:
Скрипт du_dbf_max:
#!/bin/sh find /eis -type f -name *.dbf -exec du -km {} \;| gawk \ 'BEGIN { size = 0}; { if ($1 > size) {size = $1; name = $2} }; \ END { print size " Mb - max size: " name }'
Найти и выдать файлы с объёмом больше 700Mb:
Скрипт du_f_700:
#!/bin/sh find /eis -type f -exec du -km {} \;| gawk 'BEGIN { size = 700}; \ { if ($1 > size) { print $2 " = " $1 " Mb"} }; END {}'
Перекодировать имена файлов из одной кодировки в другую:
Скрипт iconv_currentCP:
#!/bin/bash #Конвертация имён файлов и каталогов из заданной кодировки в текущую if [ "$1" = ""] then echo "Исходная кодировка не указана! \ Пожалуйста укажите кодировку, например cp1251 или koi8-r"; exit 1 fi PWD=$(pwd) #Запоминаем текущий каталог #Ищем все вложенные каталоги в текущем и отдаём их переменной цикла и \ временно заменяем пробелы в названиях на для исключения проблем с \ восприятием одного имени файла как нескольких. for i in $(find $PWD -type d -depth | sed 's/ /\\/g') do #Возвращяем пробелы в имена файлов и каталогов и запоминаем в переменной dest dest=$(echo "$i" | sed 's/\\/ /g') cd "$dest" #Переходим в каталог #Конвертируем имена содержимого катаога из заданной кодировки в текущую for n in * do conv=$(echo "$n" | iconv -c -f "$1") mv "$n" "$conv" done cd $PWD done
Перекодировать имена файлов из одной кодировки в другую:
Скрипт iconv_UTF2koi8-r:
#!/bin/sh find /space/place * -exec iconv -f UTF-8 -t KOI8-R {} \;
Монтирование через sshfs с перекодировкой с командной строки:
sshfs 10.0.3.200:/space /mnt/space -o \ allow_other,modules=iconv,from_code=KOI8-R,to_code=UTF8
Монтирование через sshfs с перекодировкой строчкой в /etc/fstab:
sshfs#fuse@10.0.3.200:/space /mnt/space fuse \ user,allow_other,modules=iconv,from_code=KOI8-R,to_code=UTF8 0 0
fuse в строчке 'sshfs#fuse@10.0.1.200' - пользователь на другой стороне, но при таком раскладе спрашивает пароль пользователя. Если необходимо настраивать беспарольный автомат - надо генерить rsa или dsa ключи.
Сделать скриншот графического экрана из консоли (используется команда import из пакета ImageMagick):
Скрипт screenshot.sh:
#!/bin/bash import -display :0.0 -window root screenshot.jpg
Сделать скриншот графического экрана удалённой машины (используется команда import из пакета ImageMagick):
Скрипт screenshot.sh:
#!/bin/bash /usr/bin/ssh student@10.0.4.101 /usr/bin/import -display :0.0 -window root /home/student/screenshot.jpg /usr/bin/scp student@10.0.4.101:/home/student/screenshot.jpg pk01.jpg
Скрипт "батарейка" на случай сбоя даты на компьютере по причине севшей батарейки на системной плате и отсутсвия time-сервера в сети или самой сети. Скрипт battery проверяет, если текущий год меньше 2010, то выставить дату 17 марта 2010 года:
#!/bin/sh # # chkconfig: 2345 07 99 # description: battery-script is used for setting fixed date if real battery \ # on motherboard is low and system date set on default manufactured date. # processname: battery RETVAL=0 start() { echo -n $"Setting Date: " /bin/date|/bin/awk '{if ($6 < "2010") {system("/bin/date -s 03/17/10")}; }' echo return $RETVAL } stop() { echo -n $"Setting Date Not Need!" echo return $RETVAL } restart() { stop start } # See how we were called. case "$1" in start) start ;; stop) stop ;; restart|reload) restart ;; *) echo $"Usage: battery {start|stop|restart|reload}" exit 1 esac exit $RETVAL