我正在编写一个简单的函数来检查三个不同的文件是否存在,如果所有三个文件都存在,它应该返回“是”,如果一个或多个文件存在则返回“部分”,如果三个文件都不存在则返回“否”。
该函数称为 IsPortalDown,它有一个大小写开关;NodeOne 是目前使用的那个。
这是我的功能
function IsPortalDown() {
case "$1" in
NodeOne )
if [[ -f $wpsdmgr ]] && [[ -f $wpsnodeagent ]] && [[ ! -f $wpsserver ]];
then
echo "Yes"
elif [[ ! -f $wpsdmgr ]] || [[ ! -f $wpsnodeagent ]] || [[ ! -f $wpsserver ]];
then
echo "Partially"
else
echo "No"
fi;
;;
NodeTwo )
;;
esac
}
Run Code Online (Sandbox Code Playgroud)
定义了一些常量来清理一些东西。见下文
PortalProfileLogsDir=/opt/IBM/WebSphere/wp_profile/logs
WPSDMGRProfileLogsDir=/opt/IBM/WebSphere/AppServer/profiles/dmgr01/logs
wpsdmgr=$WPSDMGRProfileLogsDir/dmgr/dmgr.pid
wpsnodeagent=$PortalProfileLogsDir/nodeagent/nodeagent.pid
wpsserver=$PortalProfileLogsDir/WebSphere_Portal/WebSphere_Portal.pid
Run Code Online (Sandbox Code Playgroud)
下面是我调用函数和预期结果的方式。
IsPortalDown NodeOne
Run Code Online (Sandbox Code Playgroud)
如果所有三个文件都存在,则输出应如下所示
[wpssrvr@tstdydalbpt0101 dmgr]$ IsPortalDown NodeOne
Yes
Run Code Online (Sandbox Code Playgroud)
如果存在三个文件之一,则输出如下
[wpssrvr@tstdydalbpt0101 …Run Code Online (Sandbox Code Playgroud) 我需要从包含日期时间戳的文件中提取信息,如下所示
[01/Sep/2023:08:10:45 +0200]
我想在 AIX 上使用 grep 匹配 2023 年的所有行
我尝试过grep -E "\[.*(\/2023)*\]"但没有成功。
好吧 - 我不太清楚它看起来像..这是实际文件中的示例数据
10.239.45.25 - - [01/Sep/2022:08:10:45 +0200] "GET /favicon.ico HTTP/1.1" 403 279
10.218.72.116 - - [01/Sep/2022:08:10:45 +0200] "GET /favicon.ico HTTP/1.1" 403 279
10.66.244.120 - - [01/Sep/2022:08:10:45 +0200] "GET /favicon.ico HTTP/1.1" 403 279
10.239.45.25 - - [01/Sep/2022:08:10:45 +0200] "GET /favicon.ico HTTP/1.1" 403 279
10.218.72.116 - - [01/Sep/2023:08:10:45 +0200] "GET /favicon.ico HTTP/1.1" 403 279
10.66.244.120 - - [01/Sep/2023:08:10:45 +0200] "GET /favicon.ico HTTP/1.1" 403 279
Run Code Online (Sandbox Code Playgroud)
我预计输出只是最后两行,因为它们是在 2023 …