You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取近30天未使用/访问的Perforce客户端列表?

获取近30天未被访问的Perforce客户端列表的方法

方法1:直接用p4 clients内置筛选(最快捷)

Perforce的p4 clients命令支持通过参数直接过滤日期,一步到位:

p4 clients -T "client, owner, accessed, root" -F "accessed <= %30d%"
  • 参数说明:
    • -T:指定输出字段,这里包含客户端名、所有者、最后访问时间、根目录,可按需增减
    • -F:过滤规则,%30d%是Perforce内置变量,代表当前时间往前推30天,该规则会筛选出所有最后访问时间早于30天前的客户端

如果只需要客户端名称,简化命令:

p4 clients -T client -F "accessed <= %30d%"

方法2:用p4 clientstat批量验证(适合复杂场景)

如果需要更精细的判断逻辑,或结合其他客户端属性,可以先拉取所有客户端列表,再逐个检查访问时间。以下是Shell脚本示例:

# 计算30天前的Unix时间戳
THRESHOLD=$(date -d "-30 days" +%s)

# 遍历所有客户端
p4 clients -T client | while read CLIENT_NAME; do
    # 提取客户端最后访问时间
    ACCESSED_DATE=$(p4 clientstat -c "$CLIENT_NAME" | grep "^Accessed:" | awk '{print $2, $3}')
    # 转换为时间戳(macOS需替换为`date -j -f "%Y/%m/%d %H:%M:%S" "$ACCESSED_DATE" +%s`)
    ACCESSED_TIMESTAMP=$(date -d "$ACCESSED_DATE" +%s 2>/dev/null)
    
    # 比较时间戳,输出符合条件的客户端
    if [ "$ACCESSED_TIMESTAMP" -lt "$THRESHOLD" ]; then
        echo "$CLIENT_NAME - 最后访问时间: $ACCESSED_DATE"
    fi
done
  • Windows环境可改用PowerShell实现相同逻辑,核心步骤一致:拉取列表→提取时间→日期对比。

注意事项

  • 权限限制:执行命令的用户需要有list权限查看所有客户端,否则只能看到自己有权限访问的范围
  • 空值处理:从未被访问过的客户端,accessed字段为空,这类客户端会被上述命令自动筛选出来
  • 日期兼容性:不同系统的日期转换工具语法有差异,需根据运行环境调整时间戳转换逻辑

内容的提问来源于stack exchange,提问作者AskQuestionsP

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 23:48:13