用两个命令运行一个cron,等待第一个命令完成后再运行第二个命令



我的digitalocean液滴中没有足够的内存(我知道,我应该优化运行的模块和代码,我会这样做,但我需要争取一些时间,直到我能做到为止。)

我想每隔几个小时创建一个运行以下内容的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

相关内容

最新更新