运行 一个包含 2 个命令的 cron,等待第一个完成到 运行 第二个

Run a cron with 2 commands, and wait for first to finish to run second

我的 digitalocean droplet 中没有足够的内存 ram(我知道,我应该优化 运行ning 模块和代码,我会这样做,但我需要买一些到我能做到为止.. )

我想每隔几个小时创建一个 cron,运行是这样的:

sudo sync
sudo sysctl -w vm.drop_caches=3

但我想确保第一个在 运行 第二个之前完成,

我该怎么做?

如果您只想在第一个命令成功时执行第二个命令,请使用&&

sudo sync && sudo sysctl -w vm.drop_caches=3

如果您想执行第二个命令而不考虑第一个命令的结果,请使用;

sudo sync; sudo sysctl -w vm.drop_caches=3

这个 cron 将每小时 运行 命令:

0 * * * * sudo sync && sudo sysctl -w vm.drop_caches=3

但是您应该设置 rootcrontab 而不是 运行 使用 sudo 命令。 sudo 不是 运行 在此上下文中您的命令所必需的,因为它无论如何都会被调用为 root。这会打开 rootcrontab.

sudo crontab -e

没有 sudocron 看起来像这样。

0 * * * * sync && sysctl -w vm.drop_caches=3