如何在crontab

时间:2015-07-23 08:48:59

标签: linux shell cron crontab

我已经在cron中安排了一个根据条件触发电子邮件的shell脚本。 我修改了发件人电子邮件地址。 现在,问题是我在不同的测试环境中测试脚本,在某个地方可能它仍处于活动状态并从测试环境中发送电子邮件。我已经在测试环境中检查了crontabs,但我发现它已经安排好了。

你能帮助我了解如何追踪这些电子邮件被触发的位置吗?哪个实例?哪个cron等 提前谢谢。

1 个答案:

答案 0 :(得分:0)

我建议咨询cron日志文件。此文件记录cron何时以及代表哪个用户启动的程序。

对于FreeBSD,这是public static int ExecuteCmdWithInput(string mainCmd, string arguments, string commands, out string output, int timeout = 60000) { List<string> commandsArr = new List<string>(); using (StringReader sr = new StringReader(commands)) { string line = sr.ReadLine(); while (!string.IsNullOrEmpty(line)) { commandsArr.Add(line); line = sr.ReadLine(); } } return ExecuteCmdWithInput(mainCmd, arguments, commandsArr.ToArray(), out output, timeout); } public static int ExecuteCmdWithInput(string mainCmd, string arguments, string[] commands, out string output, int timeout = 60000) { Process p = new Process(); p.StartInfo.UseShellExecute = false; p.StartInfo.RedirectStandardOutput = true; p.StartInfo.RedirectStandardInput = true; p.StartInfo.RedirectStandardError = true; p.StartInfo.CreateNoWindow = true; p.StartInfo.FileName = mainCmd; p.StartInfo.Arguments = arguments; p.Start(); using (StreamWriter inputWriter = p.StandardInput) { foreach(string line in commands) { inputWriter.WriteLine(line); } } output = p.StandardOutput.ReadToEnd(); output += Environment.NewLine; output += p.StandardError.ReadToEnd(); p.WaitForExit(timeout); return p.ExitCode; } 。在Linux上,一如既往,它可能取决于您的发行版,cron实现,月亮阶段:-)运行[ [ 8.414883613586426, 51.75252652576658 ], [ 8.414196968078613, 51.74674780234288 ], [ 8.42200756072998, 51.748713979726574 ], [ 8.42228651046753, 51.752499958614976 ], [ 8.414883613586426, 51.75252652576658 ] ] 可能会指向/var/log/cron部分中的正确文件。