Para evitar lidar com a sintaxe da linha de comando de cron
, não coloque o comando no crontab
. Escreva um wrapper bash
simples em torno do comando e chame o script do crontab
. Este wrapper permitirá que você configure o ambiente ( $PATH
), redirecionamento de E / S, tratamento de erros, ...
Além disso, observe que você está usando o formato crontab
usado na configuração especial% root
( /etc/crontab
, /etc/cron.d/
, /etc/cron.daily/
, /etc/cron.hourly/
, /etc/cron.monthly/
, /etc/cron.weekly/
) . Esta é sua intenção? Ou você está usando sudo crontab
? Eu desaprovo isso.
Você tem:
[ -d /var/lib/php/sessions ] && find /var/lib/php/sessions/ -type f -cmin +15 -size 0c -print0 | xargs -n 200 -r -0 rm
Você precisa:
[ -d /var/lib/php/sessions ] && /usr/bin/find /var/lib/php/sessions/ -type f -cmin +15 -size 0c -print0 | /usr/bin/xargs -n 200 -r -0 /bin/rm
Você tem:
[ -d /var/lib/php/sessions ] && find /var/lib/php/sessions/ -type f -cmin +15 -size 0c -exec rm '{}'
Você precisa de um ponto e vírgula com escape (" \;
") para finalizar o -exec
:
[ -d /var/lib/php/sessions ] && /usr/bin/find /var/lib/php/sessions/ -type f -cmin +15 -size 0c -exec rm '{}' \;
" find
deve ser antigo"? O find --version
se parece com:
$ find --version
find (GNU findutils) 4.7.0-git
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Written by Eric B. Decker, James Youngman, and Kevin Dalley.
Features enabled: D_TYPE O_NOFOLLOW(enabled) LEAF_OPTIMISATION FTS(FTS_CWDFD) CBO(level=2)
Qual versão do Ubuntu você está executando? find ... -delete
existe há muito tempo. Você é BusyBox
?
Aqui está um script que eu uso para ilustrar alguns problemas de cron
:
(Meu ambiente usa $HOME/bin
e $HOME/var/log
):
Em $ HOME / bin / recordenv:
#!/bin/bash
# Record the environment that a job enjoys
# $1 is the "type" (cron, at, batch, gui, text) are suggested values.
# $1 is NOT validated. Output goes to ${HOME}/var/log/{env,set,alias}.$1
if [[ "$1" ]] ; then
ext="$1"
env | sort >${HOME}/var/log/env.$ext
set >${HOME}/var/log/set.$ext
alias >${HOME}/var/log/alias.$ext
/bin/ls -l ${HOME}/var/log/env.$ext ${HOME}/var/log/set.$ext ${HOME}/var/log/alias.$ext
else
echo "User error."
exit 1
fi
Para usá-lo, chame $HOME/bin/recordenv cron
de crontab
.