gpt4 book ai didi

linux - Crontab 不启动脚本

转载 作者:太空宇宙 更新时间:2023-11-04 10:05:26 25 4
gpt4 key购买 nike

我试图在每天 12 点通过 crontab 运行以下脚本:

#!/bin/sh
mount -t nfs 10.1.25.7:gadal /mnt/NAS_DFG
echo >> ~/Documents/Crontab_logs/logs.txt
date >> ~/Documents/Crontab_logs/logs.txt
rsync -ar /home /mnt/NAS_DFG/ >> ~/Documents/Crontab_logs/logs.txt 2>&1
unmout /mnt/NAS_DFG

因为它需要在 sudo 中运行,所以我将以下行添加到“sudo crontab”,这样我就有了:

someone@something:~$ sudo crontab -l
# Edit this file to introduce tasks to be run by cron.
#
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
#
# To define the time you can provide concrete values for
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use '*' in these fields (for 'any').#
# Notice that tasks will be started based on the cron's system
# daemon's notion of time and timezones.
#
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
#
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
#
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h dom mon dow command

0 12 * * * ~/Documents/Crontab_logs/Making_save.sh

但它没有运行。我提到只是通过执行脚本:

sudo ~/Documents/Crontab_logs/Making_save.sh

工作正常,除了没有将 rsync 命令的输出写入日志文件。

知道出了什么问题吗?我想我检查了错误的主要来源,即使用 shell,在最后留下一个空行,等等......

最佳答案

sudo crontab 创建一个运行在 root 的 crontab 之外的作业(如果你设法正确配置它;root 中的语法crontabs 是不同的)。当 cron 运行作业时,$HOME(和 ~ 如果您使用带波浪号扩展的 shell 或脚本语言)将引用root

你可能应该简单地添加

0 12 * * * sudo ./Documents/Crontab_logs/Making_save.sh

改为您自己的 crontab

请注意 crontab 根本没有波浪号扩展(但我​​们可以相信 cron 将始终用完您的主目录)。

...虽然这仍然会有问题,因为如果脚本在 sudo 下运行并创建新文件,这些文件将归 root 所有,并且不能由您的普通用户帐户更改。更好的解决方案仍然是仅使用 sudo 运行实际的 mountumount 命令,并尽量减少在特权帐户上运行的代码量,即从您的 crontab 中删除 sudo,而是将其添加到脚本中需要它的各个命令。

关于linux - Crontab 不启动脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52949825/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com