使用 2 个命令运行 cron,然后等待第一个完成运行第二个

Ton*_*bet 1 cron command apache2 callback ubuntu-12.04

我的digitalocean droplet中没有足够的内存ram(我知道,我应该优化正在运行的模块和代码,我会这样做,但我需要花一些时间才能做到……)

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

sudo sync
sudo sysctl -w vm.drop_caches=3
Run Code Online (Sandbox Code Playgroud)

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

我怎么能那样做?

use*_*169 5

使用&&,如果你只想在第一个命令成功执行第二个命令。

sudo sync && sudo sysctl -w vm.drop_caches=3
Run Code Online (Sandbox Code Playgroud)

使用;如果您想不管执行的第一个命令的结果的第二命令。

sudo sync; sudo sysctl -w vm.drop_caches=3
Run Code Online (Sandbox Code Playgroud)

cron将每小时运行一次命令:

0 * * * * sudo sync && sudo sysctl -w vm.drop_caches=3
Run Code Online (Sandbox Code Playgroud)

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

sudo crontab -e
Run Code Online (Sandbox Code Playgroud)

cron没有sudo将这个样子。

0 * * * * sync && sysctl -w vm.drop_caches=3
Run Code Online (Sandbox Code Playgroud)