The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Пожалуйста помогите написать Shell скрипт."
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Shell скрипты)
Изначальное сообщение [ Отслеживать ]

"Пожалуйста помогите написать Shell скрипт."  +/
Сообщение от hiddensy email(ok) on 01-Апр-10, 20:20 
Здраствуйте ALL.

Помогите пожалуйста написать скрипт. Суть скрипта в следуещем.
1. Есть папка в ней много файлов, необходимо выбрать из данной папки один случайный файл.
2. Есть другая папка, в которую выбранный файл нужно перенести.
3. Скрипт вешается в Cron и выполняется каждые 3 часа

Подскажите кодом, программировать под FreeBSD не очень умею еще.

Высказать мнение | Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Пожалуйста помогите написать Shell скрипт."  +/
Сообщение от аноним on 01-Апр-10, 23:20 
вот от этого можно отталкиваться (на свежем 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 возможно потребудется указать полные пути к бинарникам

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

2. "Пожалуйста помогите написать Shell скрипт."  +/
Сообщение от hiddensy (ok) on 02-Апр-10, 13:52 
>при внесении данного скрипта в crontab возможно потребудется указать полные пути к
>бинарникам

Спасибо за пример, буду разбираться дальше

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

3. "Пожалуйста помогите написать Shell скрипт."  +/
Сообщение от phpcoder email(??) on 02-Апр-10, 14:01 
>1. Есть папка в ней много файлов, необходимо выбрать из данной папки
>один случайный файл.

Предлагаю так:

find . -type f | shuf | head -1

или:

find . -type f | sort -R | head -1

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

4. "Пожалуйста помогите написать Shell скрипт."  +/
Сообщение от Andrey Mitrofanov on 02-Апр-10, 14:20 
>| shuf | head -1

|shuf -n1
fixed.

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру