Crontab: 运行 仅当第一个命令正常时才执行两个命令
Crontab: run two commands only if first command was ok
我有一个 bash-脚本,它检查某些文件是否存在并将它们复制到其他地方。如果文件不存在,则它以状态码 4 退出。
如果状态代码为 0,则两个 php-脚本应该 运行 并处理复制的文件。但我不知道如何告诉第三个命令(第二个 php 脚本)应该 运行 只有当第一个命令是 0.
复制文件的脚本:
/var/www/dms-live/import-xknddb.sh >> /var/log/importer/import-cron.log
第一个php脚本:
php -f "xknddb-import.php" live k000 >> /var/log/importer/live.xknddb.log
第二个php脚本:
php -f "xknddb-import.php" test k000 >> /var/log/importer/test.xknddb.log
这两个 php-脚本可以同时 运行,所以我尝试了这个:
/var/www/dms-live/import-xknddb.sh >> /var/log/importer/import-cron.log && php -f "xknddb-import.php" live k000 >> /var/log/importer/live.xknddb.log & php -f "xknddb-import.php" testAll k000 >> /var/log/importer/test.xknddb.log &
如果第一个命令失败,第一个 php-脚本不会 运行。但是第二个 php 脚本总是从 运行 开始。
是否可以将两个 php 脚本或其他东西分组?
只需将两个 php 脚本与括号 ()
或方括号 {}
组合在一起,如果您不想打开子 shell:
$ false && (echo "Hello" & echo "World")
$ true && (echo "Hello" & echo "World")
Hello
World
你的情况:
/var/www/dms-live/import-xknddb.sh >> /var/log/importer/import-cron.log && (php -f "xknddb-import.php" live k000 >> /var/log/importer/live.xknddb.log & php -f "xknddb-import.php" testAll k000 >> /var/log/importer/test.xknddb.log &)
我有一个 bash-脚本,它检查某些文件是否存在并将它们复制到其他地方。如果文件不存在,则它以状态码 4 退出。
如果状态代码为 0,则两个 php-脚本应该 运行 并处理复制的文件。但我不知道如何告诉第三个命令(第二个 php 脚本)应该 运行 只有当第一个命令是 0.
复制文件的脚本:
/var/www/dms-live/import-xknddb.sh >> /var/log/importer/import-cron.log
第一个php脚本:
php -f "xknddb-import.php" live k000 >> /var/log/importer/live.xknddb.log
第二个php脚本:
php -f "xknddb-import.php" test k000 >> /var/log/importer/test.xknddb.log
这两个 php-脚本可以同时 运行,所以我尝试了这个:
/var/www/dms-live/import-xknddb.sh >> /var/log/importer/import-cron.log && php -f "xknddb-import.php" live k000 >> /var/log/importer/live.xknddb.log & php -f "xknddb-import.php" testAll k000 >> /var/log/importer/test.xknddb.log &
如果第一个命令失败,第一个 php-脚本不会 运行。但是第二个 php 脚本总是从 运行 开始。
是否可以将两个 php 脚本或其他东西分组?
只需将两个 php 脚本与括号 ()
或方括号 {}
组合在一起,如果您不想打开子 shell:
$ false && (echo "Hello" & echo "World")
$ true && (echo "Hello" & echo "World")
Hello
World
你的情况:
/var/www/dms-live/import-xknddb.sh >> /var/log/importer/import-cron.log && (php -f "xknddb-import.php" live k000 >> /var/log/importer/live.xknddb.log & php -f "xknddb-import.php" testAll k000 >> /var/log/importer/test.xknddb.log &)