大家好我已经使用这段代码生成备份文件,找到目录中的最新文件,并使用ip将最新文件复制到服务器。问题是,它没有将最新文件复制到server.how这样做?
这是我用过的代码:
#!/bin/sh
#
#Defines our output file
OUTPUTDIR=/home/backup
OUTPUT=$OUTPUTDIR/backup-of-$(date +%d-%m-%Y).zip
BACKUPDIR="/home/user/Desktop/backup/"
LATESTFILE=ls -t1 | head -n1
#Display message about starting the backup
echo "Starting backup of directory $BACKUPDIR to file $OUTPUT"
#Start the backup
zip -r $OUTPUT $BACKUPDIR
#Checking the status of the last process:
if [ $? == 0 ]; then
#Display confirmation message
echo "The file:"
echo $OUTPUT
echo "was created as a backup"
else
#Display error message message
echo "There was a problem creating:"
echo $OUTPUT
echo "as a backup for:"
echo $BACKUPDIR
fi
echo "Please Enter The IP to save backup file"
read ip
echo "Connecting to" $ip. please wait...
scp $LATESTFILE user@$ip:/home/user/Desktop
答案 0 :(得分:0)
您忘了附上获取最后一个文件的命令:
LATESTFILE=$(ls -t1 | head -n1)
答案 1 :(得分:0)
首先,我会更改以下行
LATESTFILE=ls -t1 | head -n1
到
LATESTFILE=`ls -t1 $OUTPUTDIR | head -n1`
并将该行移至请求IP之前。
“”表示执行“`”字符之间的内容并返回结果。如果您将该行留在顶部,则不会在目录中获取最新文件,因为它尚未创建。您还在当前目录上执行“ls”,不应该在写入备份文件的目录中吗?
还需要更改行
scp $LATESTFILE user@$ip:/home/user/Desktop
到
scp $OUTPUTDIR/$LATESTFILE user@$ip:/home/user/Desktop
希望这有帮助