这是来自海德拉巴的Srikanth。
我是一家公司的Linux管理员。我们有一个squid服务器,所以我准备了一个Backup squid服务器,这样当LIVE Squid服务器关闭时我就可以把备份服务器放到LIVE中。
我的squid服务器配置了Centos 5.5。我准备了一个脚本来备份/ etc / squid / LIVE服务器中的所有配置文件到备份服务器。即它会将所有文件从Live服务器的/ etc / squid /复制到备份服务器的/ etc / squid /
这是在目录/ opt /中保存为squidbackup.sh的脚本,权限为755(rwxr-xr-x)
#! /bin/sh
username="<username>"
password="<password>"
host="Server IP"
expect -c "
spawn /usr/bin/scp -r <username>@Server IP:/etc/squid /etc/
expect {
"*password:*"{
send $password\r;
interact;
}
eof{
exit
}
}
**请注意,这将在备份服务器中执行,该服务器将检查脚本中提到的用户。我在实时服务器中创建了一个用户,并在脚本中也给出了相同的用户。
当我使用以下命令执行此命令时
[root@localhost ~]# sh /opt/squidbackup.sh
到目前为止一切正常,此脚本将所有文件从LIVE服务器的/ etc / squid /目录下载到备份服务器的/ etc / squid /
现在问题引发了,如果我在crontab中设置如下或其他时间
50 23 * * * sh /opt/squidbackup.sh
不知道什么是错的,它不是下载所有文件。即Cronjob只从/ etc / squid / LIVE服务器下载少量文件到/ etc / squid /备份服务器。
**当cron执行脚本时,只下载了几个文件,如果我手动运行这个脚本,那么它会完全下载所有文件,没有任何错误或警告。
如果您还有其他问题,请继续发布。
如果有任何解决方案,我现在请求提供。
拜托,请提前谢谢。
感谢您的关注。我已经尝试了你所说的,它显示如下,但以前我用来获得相同的输出到用户在squid备份服务器的邮件。
即使在cron日志中也显示相同,但我无法理解以下行中的确切错误。
请注意,只有少数文件可以通过cron下载。
spawn /usr/bin/scp -r <username>@ServerIP:/etc/squid /etc/
<username>@ServerIP's password:
请检查您是否可以提出任何其他建议。
答案 0 :(得分:1)
首先尝试简单的选项。捕获stdout和stderr,如下所示。这些文件应指向问题。
查看脚本,您需要指定expect的位置。这可能是一个问题。
50 23 * * * sh /opt/squidbackup.sh >/tmp/cronout.log 2>&1