如何在特定时间执行工作

时间:2011-04-26 15:15:59

标签: linux

我是Linux新手,我想帮助一个脚本。我希望脚本创建一个文件并授予每个人读取,写入和执行它的权限,一分钟后,我希望权限只读,并回显“你不再有访问权限”的消息。

我尝试过以下操作,它会创建并提供权限,但会回显“您不再拥有访问权限”这一消息。

#!/bin/bash
echo "enter time"
read time

touch bin/jozat
echo chmod 777 bin/jozat | at now + 1 minutes
echo chmod 700 bin/jozat | at now + 2 minutes && echo "you no longer have access"

2 个答案:

答案 0 :(得分:2)

您想使用at(1)

答案 1 :(得分:2)

我不知道如何使用at,但我敢打赌你的echo会为某些日志文件发送输出。此外,您不想在更新权限后发送echo吗?您的脚本在注册at中更改的权限后输出它,而不是在权限更改时输出。

我会将其替换为wall,它将消息发送给所有终端中的所有用户。所以,我写了

echo 'chmod 700 bin/jozat && echo "you no longer have access" | wall' | at now + 2 minutes

而不是

echo chmod 700 bin/jozat | at now + 2 minutes && echo "you no longer have access"

请注意,所有命令chmod 700 bin/jozat && echo "you no longer have access" | wall都在单引号之间。

这对你来说是一个很好的解决方案吗?

修改wall命令将消息发送给所有终端中的所有用户。如果只想将消息发送给执行代码的用户,可以使用write命令和当前用户名:

echo 'chmod 700 bin/jozat && echo "you no longer have access" | write `whoami`' | at now + 2 minutes