首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用于启动需要sudo权限的脚本的Crontab任务

用于启动需要sudo权限的脚本的Crontab任务
EN

Stack Overflow用户
提问于 2018-12-11 02:08:32
回答 1查看 157关注 0票数 0

我目前使用的是以下脚本Making_save.sh:

代码语言:javascript
复制
#!/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
umount /mnt/NAS_DFG
date >> ~/Documents/Crontab_logs/logs.txt

在NAS上自动rsync我的计算机。经过这次讨论,我想出了这个脚本:Crontab not launching script

我的sudo配置有下面这一行:

代码语言:javascript
复制
gadal ALL=(ALL) NOPASSWD: /bin/mount -t nfs 10.1.25.7\:gadal /mnt/NAS_DFG, /bin/umount /mnt/NAS_DFG

和cron:

代码语言:javascript
复制
0 12 * * * /home/gadal/Documents/Crontab_logs/Making_save.sh

好吧,它实际上工作了一段时间,通过执行rsync并且只在日志文件中返回:

代码语言:javascript
复制
vendredi 26 octobre 2018, 12:00:01 (UTC+0200)
rsync: opendir "/home/gadal/.cache/dconf" failed: Permission denied (13)
rsync: opendir "/home/gadal/.dbus" failed: Permission denied (13)
rsync: opendir "/home/lost+found" failed: Permission denied (13)
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1196) [sender=3.1.2]

这对我来说是完美的。

但是,现在它返回:

代码语言:javascript
复制
lundi 10 décembre 2018, 12:00:01 (UTC+0100)
rsync: recv_generator: mkdir "/mnt/NAS_DFG/home" failed: Permission denied (13)
*** Skipping any contents from this failed directory ***
rsync: opendir "/home/gadal/.cache/dconf" failed: Permission denied (13)
rsync: opendir "/home/gadal/.dbus" failed: Permission denied (13)
rsync: opendir "/home/lost+found" failed: Permission denied (13)
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1196) [sender=3.1.2]

并且不执行rsync命令。

请注意,当我使用sudo手动启动脚本时,它可以正常工作。但是,这些命令应该能够在不询问密码的情况下运行。

有什么想法吗?

EN

Stack Overflow用户

发布于 2018-12-11 17:14:13

添加:

代码语言:javascript
复制
gadal ALL=(ALL) NOPASSWD: /bin/mount -t nfs 10.1.25.7\:gadal /mnt/NAS_DFG, /bin/umount /mnt/NAS_DFG

对于sudo配置,只允许在sudo下不使用密码执行命令。它仍然需要在第一个脚本中有sudo,现在是这样的:

代码语言:javascript
复制
#!/bin/sh
sudo 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
sudo umount /mnt/NAS_DFG
date >> ~/Documents/Crontab_logs/logs.txt
票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53711287

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档