sfdx force:auth:web:login - 在 cron (MacOS) 上重用会话?

sfdx force:auth:web:login - reuse session on cron (MacOS)?

这是一个检测我是否通过身份验证的简单脚本

#!/bin/bash

if [[ $(sfdx auth:list | grep -c "my_org.my.salesforce.com") -eq 0 ]]; then
    echo "sfdx not authenticated, please run : sfdx force:auth:web:login -s -a orgname"
    # echo "DEBUG : config:list [$(sfdx config:list)]" #same output as interactive mode
    # echo "DEBUG : auth:list [$(sfdx auth:list)]" #no value returned via cron
    exit 5
fi

sfdx 在 "$HOME"/.sfdc/my@login.com.json 中为我的用户进行了身份验证,因此我的脚本在 运行 手动

时继续

当我通过 cron 运行 bash 文件时(crontab -e03 * * * * /path/my_script.sh),auth:list 没有条目,即使 sfdx config:list确实有配置的条目

我尝试获取我的 ~/.profile~/.bash_profile 文件但无济于事。

有没有一种方法可以指定使用我的交互式终端中用于来自 sfdx 的 sfdx 运行 的相同凭据文件?

也许您可以使用以下命令:

$ sfdx force:org:display -u <OrgUsername> --verbose --json >
authFile.json 

$ sfdx auth:sfdxurl:store -f authFile.json

第一个命令在JSON文件中生成一个forceurl,第二个命令使用第一个命令生成的文件进行登录。