Я изменил ваш скрипт на следующий:
if [[ -f /tmp/norun ]]; then
echo "Removing /tmp/norun $(date '+%Y%m%d-%T')" >>s30928290.log
rm -- /tmp/norun
timesh=$(date --date='1 minute') # This variable is not being used
at -f /home/s300928290/s300928290.at now + 5 minutes
else
echo "Hello, world $(date '+%Y%m%d-%T')" >>s30928290.log
fi
Как указал Кусалананда, ((... ))
является арифметическим выражением bash и недопустимо для проверки файлов, поэтому оно было изменено на [[... ]]
.
У вас есть data
когда я полагаю, что вы хотели date
. Также их нужно поставить в подстановку команд($(... )
).
Кроме того, вы неправильно написали minutes
в своей команде at
gpasswd -d myuser ftp-users
Должно сработать, как вы сказали. Но группы могут по-прежнему давать тот же результат, даже если вы удалили пользователя из группы.
Вы вышли из myuser и вошли снова? Похоже, это все, что вам нужно.
Сначала перешел на пользователя:
su myuser
Затем я проверил основную группу
id -gn
ftp-users
Поэтому я изменил основную группу на www:
sudo usermod -g www myuser
И exit
изд
Теперь, если я позвоню groups myuser
, я получу:
myuser: www
Всем спасибо!