【问题标题】:User crontab and access rights on xubuntuxubuntu 上的用户 crontab 和访问权限
【发布时间】:2015-11-03 12:53:35
【问题描述】:

我有一个 python3.2 脚本,它应该在一切完成后删除一个文件夹:

def perforce_backup(
source,
destination,
tmp_location,
zip_tmp_loc,
):

logger.info('--------------------Perforce Backup--------------------'
            )

logger.info('--- Check integrity of perforce depot (p4 verify)')
p4verify(source, 'user', 'password')

logger.info('--- Create a checkpoint (p4 admin checkpoint)')
p4checkpoint(source, 'user', 'password')

logger.info('--- Do the backup locally')
rsync(source, tmp_location)

logger.info('--- Zip perforce db and depot locally')
zipdir(tmp_location, zip_tmp_loc)

logger.info('--- Remove file from last folder on backup FTP')
shutil.rmtree(destination.path)
makedir(destination.path)

logger.info('--- Move zip to backup FTP')
cp(zip_tmp_loc.path + '/*', destination.path)

logger.info('--- Remove tmp_file locally - raw copy and archive')
shutil.rmtree(tmp_location.path)
logger.info('--- Remove tmp_file locally - raw copy and archive2')
shutil.rmtree(zip_tmp_loc.path)
logger.info('--- Remove tmp_file locally - raw copy and archive3')

当我使用“vbackup”用户手动运行脚本时,它可以工作。我使用这种语法在我的“用户”crontab 中定义了一个任务(我正在使用“su vbackup”将 crontab -e 执行为“vbackup”:

00  22 * * * python3.2 /opt/valibackup/main.py

当我使用上述代码时,脚本每天 22:00 运行。问题是它似乎在没有所需权限的情况下运行,而当我手动运行脚本时,shutil.rmtree() 不起作用。

我尝试了在此处找到的以下语法,以确保它使用“vbackup”权限运行,但它甚至没有启动。

*/30 * * * * vbackup python3.2 /opt/valibackup/main.py

如果我改用“sudo crontab -e”进行编辑,rmtree 可以工作,但 rsync 不会发送 Permission denied 错误。

有什么想法吗?

【问题讨论】:

  • 您是否绝对指定了所有文件路径?即 /path/to/dir 不只是 to/dir?
  • @RPhillipCastagna 是的,所有文件路径都是绝对路径
  • 日志中是否可能有任何特定的错误消息(应该在 /var/log 或 systemd 日志中的某个位置,具体取决于它是哪种 Linux)?

标签: python linux crontab privileges


【解决方案1】:

听起来您需要成为特权用户才能删除文件夹,并且需要以本地用户身份运行 rsync。

修改您的脚本以如下方式工作并尝试。

在删除操作之前切换到sudo用户,然后再切换回你的普通用户。

我认为stackoverflow中的这个答案会对你有所帮助

switching user in python

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-11-12
    • 1970-01-01
    • 2014-05-11
    • 1970-01-01
    • 2019-01-11
    • 2012-02-07
    • 2020-06-10
    相关资源
    最近更新 更多