# 思路

本来想的是使用 post 请求简化更新流程的,但是他用了 rsa 加密密码,加密后的密文还不一样,懒得去找加密源码了(

所以就直接用 python 的 selenium 库了,抓包找到相关更新链接,模拟人工打开网页登录并进行链接更新等操作。

在测试修 bug 之后放到服务器上挂着,尝试自动化。

# 感谢 ChatGPT!

在写好了单次运行的 python 脚本之后,在尝试 cron 自动化总碰壁,一直实现不了。是环境初始化的问题。ChatGPT 给出了很好的答案。

27 5 * * 7 /bin/bash -c 'source /root/my_serve/update_iconfont_url/start.sh' >> /root/my_serve/update_iconfont_url/crontab.log 2>&1
00 0 * * 4 /bin/bash -c 'source /root/my_serve/update_iconfont_url/start.sh' >> /root/my_serve/update_iconfont_url/crontab.log 2>&1
以下内容均为ChatGPT给出。

脚本路径:确保您的脚本中使用的所有相对路径在 cron 的执行环境中是有效的。 cron 作业通常以用户的主目录为工作目录。

鉴于这些考虑,您需要对脚本做出一些修改来保证它在 cron 中能够正确运行。这是一个修改后的脚本示例:

#!/bin/bash
# 加载 acme.sh 环境变量
. "/root/.acme.sh/acme.sh.env"
# 扩展 PATH 环境变量
export PATH="$PATH:/root/.local/bin"
# 手动初始化 Conda 环境
__conda_setup="$('/root/.apps/anaconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
    eval "$__conda_setup"
else
    if [ -f "/root/.apps/anaconda3/etc/profile.d/conda.sh" ]; then
        . "/root/.apps/anaconda3/etc/profile.d/conda.sh"
    else
        export PATH="/root/.apps/anaconda3/bin:$PATH"
    fi
fi
unset __conda_setup
# 激活 Conda 环境
conda activate py311
# 运行 Python 脚本
cd /root/my_serve/update_iconfont_url
python update_Iconfont_share_link.py

保存这个脚本,并给予它执行权限:

chmod +x /path/to/your_script.sh

然后在 crontab 中添加一条新的作业来运行它。打开 crontab 配置文件:

crontab -e

添加以下行(示例为每天凌晨 1 点运行):

0 1 * * * /path/to/your_script.sh

请确保将 /path/to/your_script.sh 替换为您的脚本实际的路径。

这样,您的脚本应该能够在 cron 作业中正确执行。

此文章已被阅读次数:正在加载...更新于

请我喝[茶]~( ̄▽ ̄)~*

Joy 微信支付

微信支付

Joy 支付宝

支付宝