Возможно, здесь бесстыдно скопировано решение @Jeff Schaller. Один вызов grep
, так что, возможно, немного быстрее.
#!/bin/ksh93
for((i=0;i<=600;i++))
do
d=$(printf '%s|%(%b %d %H:%M:%S)T' "${d}" "${i} seconds ago")
done
grep -E "^(${d:1}) Error" logfile
Измените нужные параметры или создайте новую переменную для файла.
#!/bin/bash
# Trap interrupts and exit instead of continuing the loop
trap "echo Exited!; exit;" SIGINT SIGTERM
MAX_RETRIES=10
i=0
# Set the initial return value to failure
false
while [ $? -ne 0 -a $i -lt $MAX_RETRIES ]
do
i=$(($i+1))
scp -P 3337 my_local_file.txt user@host:/remote_dir/
done
if [ $i -eq $MAX_RETRIES ]
then
echo "Hit maximum number of retries, ending."
fi