crontab 重启服务

Lor*_*oh. 7 linux service cron amazon-web-services

我在 AWS EC2 微型实例上运行 Web 服务器。该实例具有约 630MB 的 RAM。随着时间的推移,我有几个 httpd 进程和很少的可用 RAM。当我重新启动 httpd 服务时,我最终释放了大约 350MB 的 RAM。

我想过使用 root 下的 cron 作业每 12 小时自动执行一次。我的脚本包括代码

service httpd restart
service mysqld restart
ps aux
free -m
Run Code Online (Sandbox Code Playgroud)

这是我第一次尝试 cron 脚本。

我收到与预期输出的电子邮件ps auxfree -m,但

./scriptName.sh: line 1: service: command not found
./scriptName.sh: line 2: service: command not found
Run Code Online (Sandbox Code Playgroud)

对于重新启动命令。

该脚本确实以 root 身份运行。恐怕使用sudo可能会导致脚本挂起。输出中的相关行ps-

root     14664  0.0  0.2 142200  1720 ?        S    22:41   0:00 CROND
root     14665  0.0  0.2   9296  1236 ?        Ss   22:41   0:00 /bin/sh -c ./scriptName.sh
smmsp    14667  0.0  0.6  76020  4244 ?        R    22:41   0:00 /usr/sbin/sendmail -FCronDaemon -i -odi -oem -oi -t -f root
root     14669  0.0  0.1  11244  1008 ?        R    22:41   0:00 ps aux
Run Code Online (Sandbox Code Playgroud)

要成功重启服务,正确的做法是什么?

甚至建议做这样的事情吗?

输出 free -m

             total       used       free     shared    buffers     cached
Mem:           596        573         23          0          8         71
-/+ buffers/cache:        493        103
Swap:            0          0          0
Run Code Online (Sandbox Code Playgroud)

Sve*_*ven 16

主要问题是$PATHcron的运行环境没有正确定义,所以需要使用完整路径才能service运行。

您可以使用命令找到此路径,该命令which service应该打印类似 /usr/sbin/service.

第二个问题:我不会那样做,只是盲目地在生产系统上重新启动服务从来都不是一个好主意。您是否有实际的内存/性能问题,或者可能是您的 RAM 刚刚被缓冲区等用完了(请参阅http://www.linuxatemyram.com/)?

请将free -m几个小时后的输出添加到您的问题中。