我在使用 shell 脚本时遇到了一些问题。这个问题太愚蠢了,我甚至羞于开口问,但我就是想不通。
这是脚本:
#!/bin/bash
MAGAZINE="
192.168.49.3
192.168.49.5
"
SYNC="192.168.250.40"
#mount //$SYNC/PozeSync /home/alex/pozesync -o user=magazin,password=,sec=ntlm &&
for magazin in $MAGAZINE; do
if ping -c 1 -t 1 $magazin &> /dev/null
then
echo "$magazin is down"
else
echo "$magazin is up"
mount -t cifs //$magazin/PozeUpload /home/alex/mounts -o user=Administrator,password= &&
rsync --bwlimit=1000 -r /home/alex/mounts/* &&
rm -rf /home/alex/mounts/* &&
umount /home/alex/mounts &&
echo "$magazin done" >> sync.log
fi
done
#umount /home/alex/pozesync
如您所见,有两行被注释了。如果我取消注释,脚本将无法正常工作。它不会挂载 pozesync 文件夹,然后在循环中尝试加载文件夹时抛出一些 samba 错误。
如果我运行 mount/umount 命令而不使用循环,它工作正常。如果我运行循环而不使用 mount/umount 命令,它工作正常。
将它们一起运行然后...
192.168.49.3 is up
rsync: link_stat "/home/alex/mounts/*" failed: No such file or directory (2)
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1165) [sender=3.1.1]
我究竟做错了什么?
答案1
这是我的错误:
rsync --bwlimit=1000 -r /home/alex/mounts/* &&
应该
rsync --bwlimit=1000 -r /home/alex/mounts/ &&
干杯!