bash - 为每次运行的 bash 脚本维护日志

标签 bash shell logging sh

我有一个执行一些数据复制和一些转换的 bash 脚本。该脚本可能会运行几分钟,具体取决于文件大小。同时,另一个进程可以触发此脚本复制其文件。

我想为脚本的每次运行维护单独的日志。可能吗?

最佳答案

这是一个示例脚本(我为示例创建的),其日志将在每次运行时根据日期和时间写入日志文件:

cat check_script.ksh
CURRENT_TIME=$(date +%d-%m-%Y-%H:%M-%S)
echo "Running copy command now..." > "$CURRENT_TIME.txt"
## cp command here......
echo "Running another comand now....." >> "$CURRENT_TIME.txt"
## Bla bla bla
echo "Scrpit is completed..."  >> "$CURRENT_TIME.txt"

编辑:另外,为了检查您的脚本是否已经在运行,让我们按照老式逻辑创建看门狗文件(一种锁定文件)启动脚本(如果它还没有创建,首先检查它是否没有创建或存在然后创建它或考虑它正在运行退出程序)并且每次脚本完成时(在你最后一个成功的命令之后)你可以删除它然后,如果您的下一次运行出现并看到该文件存在,那么它应该从脚本中退出。

关于bash - 为每次运行的 bash 脚本维护日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48732278/

相关文章:

logging - IIS 7 日志请求正文

bash - 在 shell 脚本中以编程方式检查失败的 scp 的最佳方法

bash - 如何在 Bash 中运行多个 inotifywait 循环?

bash - UNIX/shell 脚本中的字符串连接

linux - 我想使用 shell 脚本创建多个目录,而不使用一行命令使用循环,但我没有得到所需的结果

javascript - 自定义运行时 node.js - 在 Google App Engine 中看不到我的自定义日志

linux - for 中的参数过多

两个时间点之间的 Bash 历史记录

perl - 在 perl 脚本中运行多个 shell 命令

c# - Azure 应用程序配置重新加载失败时如何记录错误