运行 一个包含 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
但是您应该设置 root
的 crontab
而不是 运行 使用 sudo
命令。 sudo
不是 运行 在此上下文中您的命令所必需的,因为它无论如何都会被调用为 root
。这会打开 root
的 crontab
.
sudo crontab -e
没有 sudo
的 cron
看起来像这样。
0 * * * * sync && sysctl -w vm.drop_caches=3
我的 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
但是您应该设置 root
的 crontab
而不是 运行 使用 sudo
命令。 sudo
不是 运行 在此上下文中您的命令所必需的,因为它无论如何都会被调用为 root
。这会打开 root
的 crontab
.
sudo crontab -e
没有 sudo
的 cron
看起来像这样。
0 * * * * sync && sysctl -w vm.drop_caches=3