Премини към съдържанието
  • Добре дошли!

    Добре дошли в нашите форуми, пълни с полезна информация. Имате проблем с компютъра или телефона си? Публикувайте нова тема и ще намерите решение на всичките си проблеми. Общувайте свободно и открийте безброй нови приятели.

    Моля, регистрирайте се за да публикувате тема и да получите пълен достъп до всички функции.

     

Препоръчан отговор


Здравейте колеги, 

След цял ден главоболия върху един елементарен (за някой) скрипт, реших да се обърна към вас. 

Та, целта която искам да постигна е следната. 

Искам да създам shell script в crontab (понеже разбрах че може директно в него да напиша такъв, няма нужда отделно да го създавам), който през определено време да проверява даден файл дали е бил обновяван и ако са изминали N на брой минути от последното му обновявяне, да го touch-не. Ето до къде стигнах: 

*/5 * * * * /usr/bin/find -mmit 10 $DATETIME //mnt/testfile /usr/bin/touch //mnt/testfile

Може ли някой да ми каже как и къде да вкарам IF цикъла и променливата за времето, понеже вече давам на заето  или  просто да създам един script и да го execute-вам с crontab

Благодаря ви предварително! 

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Според  моето скромно мнение трябва да е в скрипта. Скрипта взима с командата stat mtime на файла и ако разликата между текущото време и mtime е по-голяма от N touch-ва файла.

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Изключително просташко решение, обаче сработва.

#!/bin/bash
cur_time=$(date | awk '{ print $4 }')
echo $cur_time
file_time=$(stat /home/debilian/"test".txt | grep Modify | awk '{ print $3 }')
echo $file_time
difference=$(expr `date +%s -d ${cur_time}` - `date  +%s -d ${file_time}`)
echo $difference
zero=0
if [ "$difference" -lt 0 ] ; then
    abs=$((${difference} * -1))
else
    abs=$difference
fi

echo $abs
if [ "$abs" -gt 300 ]; then
    touch /home/debilian/"test".txt ;
           echo " File has been updated"

else
    echo " File is already up to date"

fi
[email protected]:~$

 

 


Това изчислява, секундите между текущото време и mtim-a на файла и ако е по голям от 300 секунди ( 5 минути) - го обновява.Ако ти върши работа, може да черпиш биричка.

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Добавете отговор

Можете да публикувате отговор сега и да се регистрирате по-късно. Ако имате регистрация, влезте в профила си за да публикувате от него.

Гост
Напишете отговор в тази тема...

×   Вмъкнахте текст, който съдържа форматиране.   Премахни форматирането на текста

  Разрешени са само 75 емотикони.

×   Съдържанието от линка беше вградено автоматично.   Премахни съдържанието и покажи само линк

×   Съдържанието, което сте написали преди беше възстановено..   Изтрий всичко

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Добави ново...