Здраствуйте ALL.Помогите пожалуйста написать скрипт. Суть скрипта в следуещем.
1. Есть папка в ней много файлов, необходимо выбрать из данной папки один случайный файл.
2. Есть другая папка, в которую выбранный файл нужно перенести.
3. Скрипт вешается в Cron и выполняется каждые 3 часаПодскажите кодом, программировать под FreeBSD не очень умею еще.
вот от этого можно отталкиваться (на свежем bash точно работает):list=`find /var/log -type f`; file=`echo "$list"|sed $((RANDOM%\`echo "$list"|wc -l\`))\!d`; echo mv "$file" /where/to/move/var/log в данном примере это "папка в которой много файлов", /where/to/move - это "другая папка" в вашей терминологии
пример работы:
$ list=`find /var/log -type f`; file=`echo "$list"|sed $((RANDOM%\`echo "$list"|wc -l\`))\!d`; echo mv "$file" /where/to/move
mv /var/log/auth.log.2.bz2 /where/to/move
$ list=`find /var/log -type f`; file=`echo "$list"|sed $((RANDOM%\`echo "$list"|wc -l\`))\!d`; echo mv "$file" /where/to/move
mv /var/log/utx.lastlogin /where/to/move
$ list=`find /var/log -type f`; file=`echo "$list"|sed $((RANDOM%\`echo "$list"|wc -l\`))\!d`; echo mv "$file" /where/to/move
mv /var/log/sendmail.st.6 /where/to/move
$для того, чтоб этот набор команд начал работать уберите echo перед mv (с echo это можно назвать тестовым вариантом)
при внесении данного скрипта в crontab возможно потребудется указать полные пути к бинарникам
>при внесении данного скрипта в crontab возможно потребудется указать полные пути к
>бинарникамСпасибо за пример, буду разбираться дальше
>1. Есть папка в ней много файлов, необходимо выбрать из данной папки
>один случайный файл.Предлагаю так:
find . -type f | shuf | head -1
или:
find . -type f | sort -R | head -1
>| shuf | head -1|shuf -n1
fixed.