Spostare il file più vecchio tramite il cron

Ho due directory.

/application/inbox /application/unresponsive 

L'applicazione cerca i file * .txt nella casella e funziona con loro. Periodicamente l'applicazione salva le voci da questi file in file datati (2009-07-31) nella cartella non rispondente.

Vorrei impostare un lavoro cron che funziona una volta al giorno per spostare il file più vecchio dalla casella non rispondente nella casella di posta, aggiungendo un'estensione * .txt in modo che venga prelevata dall'applicazione.

  • Il modo più semplice per submit file di posta elettronica tramite la row di command in * nix?
  • Qual è il più simile AIX-like linux / unix OS disponibile?
  • Domanda sulla data e sul fuso orario in Linux
  • Quali sono i vantaggi / svantaggi dei supporti rigidi e morbidi in UNIX?
  • Utility ricorsivo di spostamento su Unix?
  • Scopo di `` in nsswitch.conf?
  • Imansible rimuovere file usando 'rm'
  • Usando 'passwd' quindi provando ssh
  • 2 Solutions collect form web for “Spostare il file più vecchio tramite il cron”

    Non testato, buggy probabile:

     #!/bin/sh # last file in list sorted newest->oldest OLDEST=$(ls -t /application/unresponsive | tail -1) # make sure $OLDEST isn't empty string if [ -n $OLDEST ]; then # quote in case of spaces and remove directory name mv "$OLDEST" /application/inbox/$(basename "$OLDEST").txt fi 

    Se vuoi lavorare con file con spazi (più robusti). Dovresti eseguire loop su di essi e utilizzare il -nt (più nuovo basato sul tempo modificato) o -ot (più vecchio) operatore di confronto con un algorithm min / max di base. Ecco un esempio di questo eccellente BashFAQ :

     files=(*) newest=${f[0]} for f in "${files[@]}"; do if [[ $f -nt $newest ]]; then newest=$f fi done 

    Quindi il tuo esempio sarebbe (non testato):

     files=(/application/inbox/*) oldest=${f[0]} for f in "${files[@]}"; do if [[ $f -ot $oldest ]]; then oldest=$f fi mv "$oldest" /application/unresponsive/ done 

    Imparare a non usare l'output di ls è meglio credo. Ecco un collegamento all'argomento per cui. Ma lo lascio a decidere se è vero o solo pseudo-unix-guru sciocchezze 🙂

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.