Bash i automatyzacja skryptu

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

TV
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1
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:

Kopiuj
#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ć?

Riddle
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 10227
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.
KS
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 708
0

Kasował konkretnie co?

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

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

Polecałbym iść w takim kierunku:

Kopiuj
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.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.