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 -e
和 03 * * * * /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,第二个命令使用第一个命令生成的文件进行登录。
这是一个检测我是否通过身份验证的简单脚本
#!/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 -e
和 03 * * * * /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,第二个命令使用第一个命令生成的文件进行登录。