① 【linux学习】nohup和&的用法试验结果
众所周知,nohup命令在关闭终端后仍能持续运行Linux脚本,而&符号则表示在后台运行脚本。
具体表现为何?实际应用中,常使用`nohup ./xxx.sh 2>&1 &`命令在后台持久运行xxx.sh脚本。但nohup与&各自独立使用时有何不同?本文将通过试验给出答案。
试验一:不使用nohup和&,直接运行脚本。
结果:运行脚本时,无法在当前终端执行其他命令,需新开终端查看进程。
试验二:仅使用nohup。
结果:脚本在前台运行,不方便执行其他命令,但输出被重定向到nohup.out文件,关闭终端后进程仍在运行。
试验三:仅使用&。
结果:脚本后台运行,当前终端可用作他用,但输出直接显示,可能影响后续命令执行。使用fg命令可将脚本拉回前台,Ctrl+C可停止。
试验四:结合nohup与&。
结果:将脚本运行效果优化,可继续当前终端操作,同时查看nohup.out文件内容,避免输出干扰。
总结:了解nohup和&的用法,有助于更灵活地管理后台脚本运行。若需将输出内容保存至自定义文件,只需调整命令即可。
② Linux 把shell脚本执行的结果写到文件中
在Linux中,把shell脚本执行的结果写到文件中的方法主要有两种:
方法一:使用重定向
方法二:在脚本内部处理输出
总结: 推荐使用方法一,因为它更加灵活且易于管理。特别是在处理复杂脚本或需要同时捕获标准输出和标准错误时,这种方法更加有效。 方法二虽然也可以在脚本内部处理输出,但通常用于简单的场景或特定的需求。
③ linux shell脚本每分钟执行计划任务,并把结果发送到mail,怎么不重复发送
如果是这样的话 建议你脚本设置一个阀值 用if判断实现 在统计fail的类型的错误的时候 通过uniq和sort之类的排序去重语法 将重复次数和数值计算出来写入邮箱的临时文档里 另外最好不要一分钟一次 感觉意义不大 如果非要一分钟一次的话 建议脚本改进 通过当前的date时间做减法 算时间和日志里的进行比对 然后找出近一分钟的时间内的fail的IP 写入tmp文件中 那样你可以用 >这样的输出重定向 以免每次看到都有很多重复信息。 具体的脚本写法我就不罗列了 自己解决问题才是成长的过程。