Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Помогите, пожалуйста, правильно написать bash скрипт.  (Прочитано 1473 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Azure

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Благодаря Azure,
if
ГДЕ??? Где у меня был if?
Что это за ужас?
space=`df -h /dev/sda6 | awk '{print $5}' | grep % | grep -v использовано% | tail -1 | cut -d "%" -f1 -`
Код: (bash) [Выделить]
while [[ "$(df /dev/sda6 -output=pcent)" > "$alertvalue" ]] ; do
Напишите формат имен файлов + пути к ним — допишу остальные 2 строчки.
« Последнее редактирование: 05 Апреля 2016, 13:53:58 от Azure »
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн BloodyFRag

  • Автор темы
  • Любитель
  • *
  • Сообщений: 68
    • Просмотр профиля
Благодаря Azure,
if
ГДЕ??? Где у меня был if?
Что это за ужас?
space=`df -h /dev/sda6 | awk '{print $5}' | grep % | grep -v использовано% | tail -1 | cut -d "%" -f1 -`
Код: (bash) [Выделить]
while [[ "$(df /dev/sda6 -output=pcent)" > "$alertvalue" ]] ; do
Напишите формат имен файлов + пути к ним — допишу остальные 2 строчки.
я имел ввиду не if а поиск самого старого файла, ну да ладно.
формат файлов HCVR_ch1_main_20160307100000_20160307110000.dav HCVR_ch12_main_20160307100000_20160307110000.dav
Путь /mnt/Shared/vdrg/vid

Оффлайн victor00000

  • Старожил
  • *
  • Сообщений: 15568
  • Глухонемой (Deaf)
    • Просмотр профиля
echo -e "1\n2" | while read a
do
echo "== $a ==="
done
Wars ~.o

Оффлайн Azure

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Код: (bash) [Выделить]
#!/bin/bash

limit=95
vpath='/mnt/Shared/vdrg/vid/'

while [[ "$(df /dev/sda6 --output=pcent | grep -o '[0-9]\+')" -gt "$limit" ]] ; do
    oldest=$(ls ${vpath}HCVR_ch*.dav | head -1)
    rm ${vpath}HCVR_ch*${oldest#*_}
done
« Последнее редактирование: 05 Апреля 2016, 14:33:17 от Azure »
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн BloodyFRag

  • Автор темы
  • Любитель
  • *
  • Сообщений: 68
    • Просмотр профиля
(Нажмите, чтобы показать/скрыть)
К сожалению ваш скрипт не сработал, потому как я не упомянул о том что по пути /mnt/Shared/vdrg/vid/ еще очень много подпапок (с ip регистраторов и датами записи).

Но вроде как разобрался, не знаю правильно ли, но работет...
#!/bin/bash
limit=95
path=/mnt/Shared/vdrg/vid

while [ "$(df /dev/sda6 --output=pcent | grep -o '[0-9]\+')" -gt "$limit" ] ; do
find  $path -name $lastday -delete; find $path  -type d -empty -delete
lastday=$(ls $path -1ARrl --time-style=long-iso | tail -n1 | awk '{print $8}')
done
« Последнее редактирование: 05 Апреля 2016, 15:50:51 от BloodyFRag »

 

Страница сгенерирована за 0.033 секунд. Запросов: 23.