GVKun编程网logo

bash – 重定向cron作业的输出(crontab 重定向)

16

在本文中,我们将带你了解bash–重定向cron作业的输出在这篇文章中,我们将为您详细介绍bash–重定向cron作业的输出的方方面面,并解答crontab重定向常见的疑惑,同时我们还将给您一些技巧,

在本文中,我们将带你了解bash – 重定向cron作业的输出在这篇文章中,我们将为您详细介绍bash – 重定向cron作业的输出的方方面面,并解答crontab 重定向常见的疑惑,同时我们还将给您一些技巧,以帮助您实现更有效的1个30任务的Cron作业30个Cron作业每个执行1个任务、asp.net – 在IIS中有类似cron作业的东西吗?、bash shell: 重定向标准错误输出、bash shell:重定向标准错误输出

本文目录一览:

bash – 重定向cron作业的输出(crontab 重定向)

bash – 重定向cron作业的输出(crontab 重定向)

我在crontab中有以下条目:
0 5 * * * /bin/bash -l -c 'export RAILS_ENV=my_env; cd /my_folder; ./script/my_script.rb 2>&1 > ./log/my_log.log'

这样做的结果是我正在./script/my_script.rb的./log/my_log.log中输出.需要这种行为.令人好奇的是,我也在本地邮件中收到输出.我想知道如何通过邮件捕获我的脚本的输出.由于我将输出重定向到一个日志文件,我希望我的cron作业没有输出,因此当cron作业运行时,我将不会收到任何邮件.任何人都可以看出邮件能够获得./script/my_script.rb的输出吗?

您的重定向顺序不正确. Stderr没有被重定向到该文件,而是被发送到stdout.这就是您邮件中必须收到的.

通过将您的cron作业更改为:

0 5 * * * /bin/bash -l -c
'export RAILS_ENV=my_env;
cd /my_folder;
./script/my_script.rb > ./log/my_log.log 2>&1'

1个30任务的Cron作业30个Cron作业每个执行1个任务

1个30任务的Cron作业30个Cron作业每个执行1个任务

运行1个Cron作业执行30个任务对30个Cron作业每个执行1个在服务器负载上有什么不同? 或者将这两个条件在服务器上创build相同的负载?

如何让CRON调用正确的path

创build通过当前date备份命名的tar文件永远不会运行

Windows任务调度程序在几秒钟内执行任务

bash:$ _在cronjob中是空的

为什么从cron作业调用PHP_SAPI不等于“cli”?

运行一个执行30个任务的cron作业效率更高。

既然我假设他们都会同时运行,那么你只需要绑定一个进程而不是30个不同的进程。

虽然这不是原来的问题的一部分 – 保持30个不同的脚本将是一个头痛的问题。 更容易对一个脚本进行更改,正如下面的mu指出的那样。

这取决于所有任务是否必须是同步的,或者是否可以连续运行。

如果他们必须全部同步,那么你将不得不同时运行它们,因此将需要30个单独的工作,导致服务器上的尖峰。 如果能够一个接一个地运行,最好把它们安排成一个单一的cron工作。

如果你计划了30个cron作业,即使它们已经被序列化了,这也会导致你的服务器资源不必要的耗尽,因为现在即使它们不需要被同步,也有29个额外的进程争取ram, cpu,网络资源。

另外,如果任务完全相似,我更喜欢1个单独的cron脚本,脚本单独调用任务,而不必在crontab中维护30个单独的cron条目。

总结

以上是小编为你收集整理的1个30任务的Cron作业30个Cron作业每个执行1个任务全部内容。

如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。

asp.net – 在IIS中有类似cron作业的东西吗?

asp.net – 在IIS中有类似cron作业的东西吗?

我正在开发一个ASP.NET Web应用程序.我需要每10分钟触发一些功能.所以目前我正在考虑“计划任务”或创建一个 Windows服务来调用URL.

但我记得曾经在PHP网站托管空间中使用cron作业做同样的事情.

在IIS中有什么类似cron作业的吗?

注意:我不希望使用第三方在线调度服务.

解决方法

苹果和橘子. cron是一个Unix服务. IIS是一个Web服务器.就像cron没有包含在Apache或Nginx中一样,没有任何意义上IIS包含调度程序.但是,您可以使用类似于在Unix上使用cron的方式使用 schtasks.exe.

你可能会在this question找到更多的想法.

bash shell: 重定向标准错误输出

bash shell: 重定向标准错误输出

如何重定向标准错误输出到标准输出?如何把标准错误输出输出到一个文件?

Bash 提供了 I/O 重定向工具,有 3 个缺省的文件(标准输出流): stdin - 用来获取输入,比如键盘、文件重定向 stdout - 输出数据,缺省打印到屏幕 stderr - 输出错误信息,缺省打印到屏幕

理解 I/O (标准输入 / 输出流):

<table> <tr><th > 句柄 </th><th > 名字 </th><th > 描述 </th></tr> <tr><td>0</td> <td> stdin</td><td> 标准输入 </td></tr> <tr><td>1</td><td> stdout</td><td> 标准输出 </td></tr> <tr><td>2</td><td> stderr</td><td> 标准错误输出 </td></tr> </table>

重定向标准错误输出到文件,标准输出还是输出到屏幕

[root@ns_10.2.1.242 test]$ cat1  2> error.log 
[root@ns_10.2.1.242 test]$ cat error.log 
-bash: cat1: command not found
[root@ns_10.2.1.242 test]$ echo 1 2> error.log 
1
[root@ns_10.2.1.242 test]$ cat error.log 
[root@ns_10.2.1.242 test]$ 

重定向标准错误输出和标准输出到文件

$ command-name &>file
or
$ command > file-name 2>&1

[root@ns_10.2.1.242 test]$ echo 1 &>error.log 
[root@ns_10.2.1.242 test]$ cat error.log 
1
[root@ns_10.2.1.242 test]$ cat1 &>error.log 
[root@ns_10.2.1.242 test]$ cat error.log    
-bash: cat1: command not found

重定向标准输出到标准输入

使用下面的命令:

$ command-name 2>&1

#注意下面两个例子的区别
# 第一个命令无法更改标准错误输出的内容, 第二个命令因为把stderr 重定向到stdin, 所以 cat1 被替换成了 test
[root@ns_10.2.1.242 test]$ cat1 |sed ''s/cat1/test/''
-bash: cat1: command not found
[root@ns_10.2.1.242 test]$ cat1 2>&1|sed ''s/cat1/test/'' 
-bash: test: command not found

bash shell:重定向标准错误输出

bash shell:重定向标准错误输出

如何重定向标准错误输出到标准输出?如何把标准错误输出输出到一个文件?

Bash提供了I/O重定向工具,有3个缺省的文件(标准输出流): stdin - 用来获取输入,比如键盘、文件重定向 stdout - 输出数据,缺省打印到屏幕 stderr - 输出错误信息,缺省打印到屏幕

理解I/O(标准输入/输出流):

<table> <tr><th>句柄 </th><th>名字 </th><th>描述</th></tr> <tr><td>0</td> <td> stdin</td><td> 标准输入</td></tr> <tr><td>1</td><td> stdout</td><td> 标准输出</td></tr> <tr><td>2</td><td> stderr</td><td> 标准错误输出</td></tr> </table>

重定向标准错误输出到文件, 标准输出还是输出到屏幕

[root@ns_10.2.1.242 test]$ cat1  2> error.log 
[root@ns_10.2.1.242 test]$ cat error.log 
-bash: cat1: command not found
[root@ns_10.2.1.242 test]$ echo 1 2> error.log 
1
[root@ns_10.2.1.242 test]$ cat error.log 
[root@ns_10.2.1.242 test]$ 

重定向标准错误输出和标准输出到文件

$ command-name &>file
or
$ command > file-name 2>&1

[root@ns_10.2.1.242 test]$ echo 1 &>error.log 
[root@ns_10.2.1.242 test]$ cat error.log 
1
[root@ns_10.2.1.242 test]$ cat1 &>error.log 
[root@ns_10.2.1.242 test]$ cat error.log    
-bash: cat1: command not found

重定向标准输出到标准输入

使用下面的命令:

$ command-name 2>&1

#注意下面两个例子的区别
# 第一个命令无法更改标准错误输出的内容, 第二个命令因为把stderr 重定向到stdin, 所以 cat1 被替换成了 test
[root@ns_10.2.1.242 test]$ cat1 |sed ''s/cat1/test/''
-bash: cat1: command not found
[root@ns_10.2.1.242 test]$ cat1 2>&1|sed ''s/cat1/test/'' 
-bash: test: command not found

今天关于bash – 重定向cron作业的输出crontab 重定向的分享就到这里,希望大家有所收获,若想了解更多关于1个30任务的Cron作业30个Cron作业每个执行1个任务、asp.net – 在IIS中有类似cron作业的东西吗?、bash shell: 重定向标准错误输出、bash shell:重定向标准错误输出等相关知识,可以在本站进行查询。

本文标签: