我有一个脚本,想将其作为 cron 任务运行。通过终端输入脚本时没有问题,尽管我用实际值替换了变量。
#!/bin/bash
cd root/mqsql-backups
HOST='***.***.**.***'
USER='**********'
PASSWD='************'
ftp -n -v $HOST << EOT
ascii
user $USER $PASSWD
prompt
cd backup
put roofsmart_suitecrm_`date "+%m-%d-%Y"`.sql.gz
bye
EOT
sleep 12
似乎当调用密码变量时,密码本身并没有被输入。
使用下面的命令,我可以毫无问题地连接到 ftp 服务器。
ftp 用户 [用户] [密码]
我的第二个问题是关于我想要上传的文件。
roofsmart_suitecrm_`date "+%m-%d-%Y"`.sql.gz
有没有办法通过 ftp 上传来实现这一点。我这样做过,因为我有另一个 cron 任务,每天备份和压缩 mqsql 数据库,我希望 2 分钟后运行此脚本以将此备份上传到异地 ftp 服务器。虽然我设法让 sqldump cron 作业工作(通过大量研究),但我就是搞不清楚这个问题。
答案1
我以前从未使用过它,但只是从阅读中手册我会尝试以下一些例子:
wput --ascii "roofsmart_suitecrm_`date "+%m-%d-%Y"`.sql.gz" "ftp://$USER:$PASSWORD@$HOST/backup/"
如果您的计算机上尚未安装wput
,您可以使用以下命令安装:
sudo apt-get install wput