zaloguj informacje faq

Załóżmy , że mamy pełno plików w folderze, które chcielibyśmy poukładać w folderach o nazwie daty np 21-06-2011. Plików nie można ruszyć z miejsca ale zawsze zastanawiałem się czy nie można, stworzyć (chyba najlepiej skryptem wymuszając z crona) foldery (daty) z podlinkowanymi (ln) zasobami?. Chodzi o to, żeby w udostępnionym folderze (specjalnym) było to ładnie poukładane. Potrafię sobie wyobrazić jak to zrobić ale chce wiedzieć czy skrypt odpalany co pewien czas to na pewno najlepsza metoda. Pozdrawiam redaktorów VarLog'a.

Te pytanie jest oznaczone jako otwarte "community wiki".

zadał 21/06/11, 21:54

JarRoD's gravatar image

JarRoD
1114


Hej!

jest to jakieś rozwiązanie (w sumie lepsze nie przychodzi mi do głowy), ale zawsze będziesz miał jakieś opóźnienie (w zależności od tego jak często skrypt będzie uruchamiany), no i będziesz musiał pilnować aby usuwać linki jak pliki zostaną usunięte.

Przed pisaniem skryptu poczytaj o inotify, w Twoim przypadku może się świetnie sprawdzić ;-)

root@katha:/home/jamzed# inotifywait -ecreate -edelete /tmp/
Setting up watches.  
Watches established.
/tmp/ CREATE nowy_plik

po uruchomieniu inotifywait wykonałem w konsoli obok: touch /tmp/nowy_plik, inotifywait od razu to wykrył i zwrócił typ zdarzenia CREATE oraz nazwę pliku, tak więc jeśli będziesz monitował create/delete to będziesz mógł praktycznie tworzyć strukturę linków bez żadnej zwłoki (zarówno tworzenie jak i usuwanie).

odpowiedział 21/06/11, 22:35

jamzed's gravatar image

jamzed ♦♦
2814713

Super, thx za odpowiedź zaraz zobaczę

(21/06/11, 22:42) JarRoD JarRoD's gravatar image

Na prawdę genialne, dziękuje, jeśli to oskryptuje spróbuje o tym napisać tutaj. Widzę, że to może pasować do wielu rozwiązań jeszcze kiedyś w przyszłości.

odpowiedział 21/06/11, 23:01

JarRoD's gravatar image

JarRoD
1114

#!/bin/sh

#folder ktory chcemy monitorowac 
WATCHFOLDER=/tmp/watch

#folder w ktorych chcemy linkowac 
DUMPLN=/tmp/links

#pentla
while (true)
do
MIESIACROK=`date +%m-%Y`
 if [ ! -d $DUMPLN/$MIESIACROK ];
  then
   mkdir $DUMPLN/$MIESIACROK
  fi
  EVENT=$(inotifywait -ecreate --format '%f' $WATCHFOLDER)
  echo $EVENT
  ln -s $WATCHFOLDER/$EVENT $DUMPLN/$MIESIACROK/$EVENT
done

Thx big, muszę tylko nauczyć się jak zrobić z tego coś w rodzaju deamona i będzie great.

odpowiedział 22/06/11, 00:25

JarRoD's gravatar image

JarRoD
1114

edytowany 22/06/11, 00:26

Twoja odpowiedź
zwiń/rozwiń pogląd

Śledzenie pytania

Powiadomienie poprzez email:

Po zalogowaniu będziesz mógł się zapisać do subskrypcji

Powiadomienia poprzez RSS::

Odpowiedzi

Odpowiedzi i komentarze

Dostępne znaczniki

  • *kursywa* lub __kursywa__
  • **pogrubiony** lub __pogrubiony__
  • link:[text](http://url.com/ "Tytuł")
  • image?![alt text](/path/img.jpg "Tytuł")
  • lista numerowana: 1. Foo 2. Bar
  • aby dodać nową linię wystarczy użyć klawisza ENTER
  • podstawowe tagi HTML są akceptowane

Tagi:

×1
×1
×1
×1
×1

Pytanie dodano: 21/06/11, 21:54

Wyświetleń: 361 razy

Ostatnia aktualizacja: 22/06/11, 00:26

Podobne pytania

powered by OSQA