bash - shellscript - source: not found
Bash script para ejecutar en 5 minutos (6)
Solo quiero un script de bash para ejecutarse 5 minutos después de que se llame. ¿Qué estoy haciendo mal?
Tengo el comando:
/path/to/my/script | at now + 5 min
Y sin embargo, el script se ejecuta de inmediato cada vez.
El problema es que está ejecutando el script y canalizando la salida al comando at
. Lo que debe hacer es ejecutar el comando at
con la ruta a su script como parámetro. No estoy seguro de la sintaxis, pero at -h
u man at
debería ayudar.
Está ejecutando el script inmediatamente y enviando su salida a at
. Debe enviar el nombre del script at
:
echo /path/to/my/script | at now + 5 min
prueba esto
sys.scheduled_run /path/to/my/script 5
función principal
function sys.scheduled_run(){
local PATH_TO_ACTION MINS SLEEPTIME
PATH_TO_ACTION=$1
MINS=$2
SLEEPTIME=$(($MINS * 60))
echo "Sleeping for $MINS minute ($SLEEPTIME seconds) and then running $PATH_TO_ACTION"
ui.countdown $SLEEPTIME
$PATH_TO_ACTION
echo "Done"
if [ "REPEAT" == "$3" ]
then
echo "Going for Repeat"
sys.scheduled_run "$@"
fi
}
función de cuenta atrás
function ui.countdown(){ #USAGE ui.countdown 60 countdown for 60 seconds
local SECONDS=$1
local START=$(date +%s)
local END=$((START + SECONDS))
local CUR=$START
while [[ $CUR -lt $END ]]
do
CUR=$(date +%s)
LEFT=$((END-CUR))
printf "/r%02d:%02d:%02d" /
$((LEFT/3600)) $(( (LEFT/60)%60)) $((LEFT%60))
sleep 1
done
echo " "
}
qué tal si:
sleep 300 && /path/to/my/script
at -f /path/to/my/script -t now +5 minutes
Esto debería funcionar en cuanto a programar un script para que se ejecute en un momento específico. Para obtener más información sobre el comando " at
", intente linuxmanpages.com . Puedo estar equivocado (actualmente no estoy en un sistema Linux para probarlo).
Buena suerte de todos modos