【发布时间】:2022-01-17 18:28:24
【问题描述】:
我需要在 Jetson Nano(比如 Ubuntu 18.04)上定期运行 bash 脚本。该脚本应该运行系统更新,从存储库中提取一些 Python 代码,并以指定用户身份运行它。 所以,我创建了这个脚本:
#! /bin/bash
## system updates
sudo apt update
sudo apt upgrade
## stop previous instances of the Python code
pkill python3
## move to python script folder
cd /home/user_name/projects/my_folder
## pull updates from repo
git stash
git pull
## create dummy folder to check bash script execution to this point
sudo -u user_name mkdir /home/user_name/projects/dummy_folder_00
## launch python script
sudo -u user_name /usr/bin/python3 python_script.py --arg01 --arg02
## create dummy folder to check bash script execution to this point
sudo -u user_name mkdir /home/user_name/projects/dummy_folder_01
我创建了一个以 root 身份运行此脚本的 cron 作业,使用
sudo crontab -e
并添加条目
00 13 * * * /home/user_name/projects/my_folder/script.sh
现在,我可以看到,在配置的时间,两个虚拟文件夹都已创建,它们实际上属于 user_name。但是,Python 脚本并未启动。
我尝试以非 root 用户 (crontab -e) 创建 cron 作业,但此时即使 Python 脚本被执行,我想我也无法运行 apt update/upgrade。 我该如何解决这个问题?
【问题讨论】:
标签: python bash cron cron-task