• User

    help per comandi in cronjob

    devo fare un cronjob che prima mi cancella una directory e poi me la rimpiazza con un altra

    ho impostato così:

    rm /home/ramon/public_html/test/*
    rmdir /home/ramon/public_html/test
    cp /home/ramon/test /home/ramon/public_html/test

    --
    il primo comando mi dava errore e ho aggiunto l'opzione -r
    ma è l'ultimo che mi da problemi dicendomi : "cp: omitting directory"

    e inoltre:
    i comandi dei cron vengono eseguiti in successione?? ovvero finchè il primo non è eseguito non parte il successivo??


  • User Attivo

    Ciao ramon 🙂
    personalmente in questi casi, quando devo fare eseguire diversi comandi correlati a cron, preferisco creare uno script che li esegua e richiamare solo quello nel crontab.
    Per esempio: lo chiameremo esegui.sh e conterrà

    
    #! /bin/bash
    rm -r /home/ramon/public_html/test/*
    rmdir /home/ramon/public_html/test
    cp -r /home/ramon/test /home/ramon/public_html/test 
    
    

    gli assegniamo i giusti permessi per l'esecuzione (chmod 755 esegui.sh) e richiamiamo /path/dove/si/trova/esegui.sh nel crontab, invece di tutta la sfilza di comandi.
    Ovviamente attenzione al corretto percorso dell'eseguibile della bash, che in alcune distro potrebbe essere /usr/bin/bash.
    @"ramon" said:

    ma è l'ultimo che mi da problemi dicendomi : "cp: omitting directory"
    mancava il -r (o -R, o --recursive).

    :ciauz:


  • User

    grazie Nicola
    è proprio quello che mi serve!
    devo solo vedere se ho abbastanza permessi per eseguire bash -- sono in hosting condiviso
    al massimo chiedo ai tecnici
    cmq mi sembra un ottimo metodo per eseguire comandi in successione
    tnx