gpt4 book ai didi

linux - Bash 脚本中 FTP 将文件复制到远程计算机失败

转载 作者:太空宇宙 更新时间:2023-11-04 03:37:59 24 4
gpt4 key购买 nike

我制作了 bash 脚本,该脚本将备份文件并将其发送到远程计算机 创建文件,但 ftp 无法将其放入提到的目录当 ftp 尝试复制文件时,问题就出现了。这是我的脚本:

#!/bin/bash 
#BACKUP ROOT DIRECTORIES
DESTINATION="/backup";
HOST=localhost
USER=qwerty
PASS=qwerty
COUNT=$(cd /backup/ && ls -l | wc -l);
echo $COUNT;
DIR="/dev /sys /etc /www /var /rom /root /dev /overlay /bin /sbin /nebero /lib /usr";
DIR="/root/pen";
DIR_1="/dev /sys /etc /www /var /rom /root /dev /overlay /bin /sbin /nebero /lib /usr /mnt";
DIR_1="/root/pen";

if [ "$1" = "FULL_BACKUP" ]
then

tar cvf $DESTINATION/full_backup_`date +%d-%m-%y_%H:%M`.tar `echo $DIR_1` >>/dev/null;

if [ $COUNT -eq 1 ]
then
NEW=$(ls -t /*back*/ | head -n2);
else
NEW=$(ls -t /*back*/ | head -n2 | sed '2!d');
fi

elif [ "$1" = "CONF_BACKUP" ]
then
tar cvf $DESTINATION/conf_backup_`date +%d-%m-%y_%H:%M`.tar `echo $DIR` >>/dev/null;
NEW=$(ls -t /*back*/ | head -n2 | sed '1!d');

else
echo "Please provide an argument";
exit

fi

FILE=$NEW

ftp -in $HOST <<EOF
user $USER $PASS
pwd
cd /rav
put $FILE
bye
EOF

最佳答案

首先,看起来所有ls命令的目的都是查找您刚刚创建的文件。如果您在调用 tar 之前将文件名保存到变量中,则可以跳过所有这些:

FILENAME=full_backup_`date +%d-%m-%y_%H:%M`.tar

然后在 tar 命令中使用 $DESTINATION/$FILENAME 并在 ftp 命令中使用 $FILENAME

关于上传失败,您确定本地目录正确吗?

这些是用于更改目录的 FTP 命令:

  • cd:更改远程计算机上的目录
  • lcd:更改本地计算机上的工作目录

在执行 put 之前确保两者都正确。

关于linux - Bash 脚本中 FTP 将文件复制到远程计算机失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30931499/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com