shell.log和日志格式如下所示,
I, [2018-03-07T10:21:26.315447 #7531] INFO -- : POST http://127.0.0.1:8080/api/v3/internal/allowed 6.69490
I, [2018-03-07T10:21:26.315799 #7531] INFO -- : gitlab-shell: executing git command <git-upload-pack /var/opt/gitlab/git-data/repositories/GitLab-write-logs/write-logs.git> for user with key key-1.
I, [2018-03-07T10:23:00.567841 #7739] INFO -- : POST http://127.0.0.1:8080/api/v3/internal/allowed 5.55714
I, [2018-03-07T10:23:00.568227 #7739] INFO -- : gitlab-shell: executing git command <git-upload-pack /var/opt/gitlab/git-data/repositories/GitLab-write-logs/write-logs.git> for user with key key-1.
I, [2018-03-07T10:23:49.932948 #7851] INFO -- : gitlab-shell: executing git command <git-receive-pack /var/opt/gitlab/git-data/repositories/GitLab-write-logs/write-logs.git> for user with key key-1.
I, [2018-03-07T10:55:29.533385 #4778] INFO -- : gitlab-shell: executing git command <git-receive-pack /var/opt/gitlab/git-data/repositories/GitLab-write-logs/write-logs.git> for user with key key-1.
I, [2018-03-07T10:55:29.810478 #4790] INFO -- : POST http://127.0.0.1:8080/api/v3/internal/allowed 0.10971
如果您看到上述日志文件详细信息,则可以在某些行中看到此引用的模式
&#34; &LT; git-upload-pack /var/opt/gitlab/git-data/repositories/GitLab-write-logs/write-logs.git>对于具有密钥-1的用户。&#34;
这意味着 git-upload-pack 是在目录&#34;上发生的活动。的 /var/opt/gitlab/git-data/repositories/GitLab-write-logs/write-logs.git &#34;用户使用ssh键&#34; key-1&#34;
现在我想跟踪这个具体的&#34; git-upload-pack&#34;在shell.log文件中记录的不同目录上的活动
我希望编写一个脚本并在cron作业的帮助下继续阅读具有此特定活动的新行。我想脚本在下面做活动。
我在这里考虑,在日志文件的顶部第二行,编号为#7531
现在我看到&#34; git-upload-pack&#34;第二行中的字符串,因此脚本应该从&#34; / var / opt / gitlab / git-data / repositories / GitLab-write-logs / write-logs&#34;这一行中提取目录信息。并在不同的路径位置创建一个目录名,并在新创建的目录中创建一个日志文件并回显&#34; $ key-1 $时间戳&#34; &GT;&GT;到那个日志文件。
Shell.log文件随着每次活动的发生而保持更新,脚本应该捕获详细信息,一旦它不应该捕获相同的活动。我怎样才能实现这个输出?
谢谢大家