我已经在cron中安排了一个根据条件触发电子邮件的shell脚本。 我修改了发件人电子邮件地址。 现在,问题是我在不同的测试环境中测试脚本,在某个地方可能它仍处于活动状态并从测试环境中发送电子邮件。我已经在测试环境中检查了crontabs,但我发现它已经安排好了。
你能帮助我了解如何追踪这些电子邮件被触发的位置吗?哪个实例?哪个cron等 提前谢谢。
答案 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
部分中的正确文件。