Wątek przeniesiony 2022-06-06 15:00 z Edukacja przez cerrato.

Bash i automatyzacja skryptu

0

Hej, witam wszystkich.
Z racji tego że za wiele z programowaniem nie mam wspólnego ale chce się nauczyć troszkę potrzebuję od was pomocy.
Mam napisany w bashu taki skrypt:

#numery-do-zgrania

cat /dev/null > pliki-waw.tmp
ls /home/nagrania1/rec/2022/05/*/* > pliki-waw.tmp

for y in `cat numery-do-zgrania`
do

  for x in `cat pliki-waw.tmp | grep $y`
  do
  
    echo plik $x
    
    mv $x /FIRMA
  
  done

done

Ten skrypt wyciąga mi pliki z nagraniami z folderu i kopiuje do innego folderu, niestety dwa razy marnując miejsce na dysku.
Chciałbym go przerobić tak aby automatycznie po miesiącu kasował te pliki.
Czy ktoś jest mi w stanie pomóc jak mogę tego dokonać?

1
  1. Napisz program wyciągający daty utworzenia plików w folderze
  2. Przefiltruj je po tych które są starsze niż 30 dni od aktualnej daty
  3. Usuń je
  4. Dodaj wpis w cronie, żeby odpalał ten program, np codziennie.
0

Kasował konkretnie co?

Imho chcesz coś w tym stylu:
UWAGA Trzy razy pomyśl zanim to odpalisz abyś czegoś nie usunął.
Najpierw zrozum ;)

find './'* -type f -iname '*.rec' -exec sh -c 'cp {} path; rm {} ' \;

Polecałbym iść w takim kierunku:

tf=$( mktemp )
find dir -type f -iname '*.cos' > "$tf"

while read -r line 
do

# tu się coś zadzieje.

done < "$tf"

Na boku - Nie używaj w skryptach ls, to jest tylko dla użytkownika. Kompletnie nie portowne.

1 użytkowników online, w tym zalogowanych: 0, gości: 1