我正在尝试执行 shell 脚本来运行“rsync”进程,该进程将服务器上的本地目录同步到安装在同一服务器上的 NFS 挂载。我以“root”身份运行一个脚本,即“sudo”进入有权写入 NFS 安装的用户,并运行另一个执行“rsync”的 shell 脚本。
当我以“root”身份手动运行此脚本时,脚本成功运行。但是,当我安排脚本通过“cron”运行时,“rsync”进程开始,但没有完成,停止在构建文件列表的阶段。
这是我以“root”身份运行的脚本“exec_NFS_rsync.sh”:
#!/bin/bash
sudo -u nfsuser /path/to/scripts/nfs_rsync/scripts/NFS_rsync.sh
Run Code Online (Sandbox Code Playgroud)
这是“NFS_rsync.sh”的内容:
#!/bin/bash
##
## VARIABLES
##
# rsync binary
rsync="/usr/bin/rsync"
# Source
sourcedir="/path/to/source/files/"
# Destination
destdir="/path/to/destination/nfs/mount/"
# Exclude
exclude="--exclude=*.tmp --exclude=tmp/ --exclude=*.lck"
# Log file
log_file="/path/to/log/folder/NFS_rsync.log"
##
## SCRIPT
##
# Check if the log file exists
if [ ! -e $log_file ]; then
touch $log_file
fi
if [ ! -d $destdir ]; then
echo "Log destination directory doesn't seem to exist. Please investigate"
exit …Run Code Online (Sandbox Code Playgroud)