Solaris, первые впечатления

Solaris unix logo

Речь, конечно же, пойдет не об автомобиле Hyundai Solaris(хотя он мне и симпатичен по многим параметрам), а об операционной системе. Как-то мне в повседневной рабочей деятельности предстояло написать скрипт под операционную систему solaris. В этой заметке поделюсь своим впечатлением.

Стояла задача создать скрипт для удаления старых файлов, в большинстве случаев это используется для удаления логов. Ранее мною писался подобный скрипт для linux, поэтому мне просто необходимо было проверить что в скрипте работает не так как в linux и чуток модифицировать под solaris. Запускаю putty, прошу ее дать мне доступ по telnet к серверу(неожиданно было получить telnet доступ к unix подобному серверу, но разницы для putty никакой — все те же белые буквы на черном фоне :) ). Первое, что решил сделать — осмотреться(а вдруг тут все по-другому) Печатаю — ls — работает, pwd — работает. Как говорится, и настроение твое улучшилось. Проверим версию, печатаю cat /proc/ve[tab] [tab] — TAB не работает!! Ну как, точнее работает, но не так как это привычно для linux. При нажатии ТАБ курсор сдвигается на расстояние табуляции, а не дополняет твои команды(как это привычно). Думаю, ладно, попробуем без подсказок:

pc# cat /proc/version
cat: cannot open /proc/version

o_O

Тут вышеупомянутое настроение уже стало не таким уж и хорошим. Таб — не работает, что-то из простого и привычного(узнать версию) тоже не работает, backspace и тот не работает. Но сдаваться рано, нужно довести дело до конца. Позднее для себя выяснил, чтобы узнать версию операционной системы solaris необходимо выполнить

cat /etc/release

Для создания и редактирования файла пишу

nano tst.txt

Нету нано :(

Ну что ж, похардкорим:

vi tst.txt

О чудо — есть VI.
Благо, что скрипт пришлось не сильно модифицировать — всего лишь у solaris’а для find нет опции -iname (то же самое, что -name, только нечувствительное к регистру букв). Поэтому я поправил скрипт и в итоге все выглядело так:

#!/bin/sh
# Script by Evginey Buchnev Need help? EBuchnev@beeline.ru, joohny@mail.ru

helpstring="USAGE: del_logs fpath=\"/var/logs/\" fmask=\"*.*\" days=\"2\" To delete files older than 2 days";

first=$1
second=$2
if [ "$first" = "help" ] ; then
 echo $helpstring;
 exit;
fi
if [ "$first" = "-help" ] ; then
 echo $helpstring;
 exit;
fi
if [ "$first" = "--help" ] ; then
 echo $helpstring;
 exit;
fi
if [ "$first" = "?" ] ; then
 echo $helpstring;
 exit;
fi
if [ "$first" = "-h" ] ; then
 echo $helpstring;
 exit;
fi
if [ "$first" = "--h" ] ; then
 echo $helpstring;
 exit;
fi
ARGS=3
if [ $# -ne "$ARGS" ] ; then
 echo $helpstring;
 exit;
fi
eval $1
eval $2
eval $3

#echo $fpath $fmask $days;
if [ "$fpath" = "" ] ; then
 echo $helpstring;
 exit;
fi
if [ "$fmask" = "" ] ; then
 echo $helpstring;
 exit;
fi
if [ "$days" = "" ] ; then
 echo $helpstring;
 exit;
fi

summa=0;
summa=`find $fpath -name "$fmask" -mtime +$days -print | awk '{ print "ls -l " $0 }; ' | wc -l`
find $fpath -name "$fmask" -mtime +$days -print | awk '{ print "rm " $0 }; ' | sh

echo "Deleted " $summa ;

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *


*

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>