【发布时间】:2018-02-11 04:06:40
【问题描述】:
我正在尝试在多台 AWS EC2 机器上设置一个 cron,并希望使用以下 shell 脚本一次在所有机器上运行一个命令:
#!/bin/sh
cd /etc/cron.daily
touch ecs.sh
echo '#!/bin/sh' > /etc/cron.daily/ecs.sh
echo 'sudo yum update -y ecs-init' >> /etc/cron.daily/ecs.sh
echo 'sudo yum update -y' >> /etc/cron.daily/ecs.sh
sudo chmod 755 /etc/cron.daily/ecs.sh
cd ~
(crontab -u root -l; echo '0 0 * * * /etc/cron.daily/ecs.sh') | crontab -u root -
sudo yum update -y
不起作用的部分是:chmod 755 /etc/cron.daily/ecs.sh
我不确定,我错过了什么。
【问题讨论】:
-
“不起作用”是什么意思?就像...脚本执行完成后,您查看该文件的权限,它不是
-rwxr-xr-x?你真的需要在这里sudo你的chmod命令吗? -
@JNevill 它没有按预期运行。
-rwxr-xr-x这没有发生。它在没有sudo的情况下工作 sudo 不是通过假设 root 用户或超级用户的角色来执行命令的最安全方式吗? -
touch ecs.sh 在这个脚本中是多余的,sudo 会要求你输入密码。
-
如果你使用
sudo,它会询问你的密码,除非你已经配置sudoers允许你在没有密码的情况下使用chmod。 -
但是由于您是文件的所有者,您不需要使用超级用户权限来更改权限。