Bash

Debian - 在 bash 腳本中使用 TFTP

  • November 18, 2018

我實際上正在使用 RPiTC(Raspberry Pi 瘦客戶端)。

我創建了一個腳本來查看我的主機名是否與文件同名。現在我想說“如果我的主機名與我的文件的名稱不同,那麼使用 tftp 協議獲取文件”。

我的 tftp 伺服器在我的 windows xp 上。所以我想這樣做:

Hostname is different from the file name
               |
               |------> Use tftp Protocol to take the file on my windows.

這實際上是我的腳本:

do_start()
#Creating and checking my Hostname variable
ThisHost=$(hostname)
date=$(date)
echo "This is my hostname check:
echo $ThisHost

#This will find the file in the /home/rpitc folder and save it to a variable:
dest=$(find /home/rpitc/ -name "$ThisHost.ica")
echo "This is my dest check:"
echo $dest
findfile="${dest##*/}"
echo "This is my findfile check with extension:"
echo $findfile
echo "This is my findfile check WITHOUT extension:"
echo "${findfile%.*}"

#If check to see if my hostname $ThisHost matches the file $findfile:
if test "$ThisHost" = "${findfile%.*}"

then
   echo "Worked!"
   echo $ThisHost "is correct. Connected the" $date >> /home/rpitc/skelog
   exit 0
else
tftp=$(tftp 10.1.0.203)
GetIt=$("\Test\$ThisHost.ica")
   echo "My tftp test:"
   echo $tftp
   echo "My GetIt test:"
   echo $GetIt
   echo $ThisHost "is not correct, update of the file at" $date >> /home/rpitc/skelog
   exit 0
fi

所以我需要我腳本的這一部分的想法:

else
tftp=$(tftp 10.1.0.203)
GetIt=$("\Test\$ThisHost.ica")
   echo "My tftp test:"
   echo $tftp
   echo "My GetIt test:"
   echo $GetIt
   echo $ThisHost "is not correct, update of the file at" $date >> /home/rpitc/skelog
   exit 0
fi

我不知道如何在我的 bash 腳本中使用 tftp 協議…

使用here documents.

tftp 10.1.0.203 << fin
  get /test/${ThisHost}.ica
  quit
fin

那應該/test/${ThisHost}.ica從您的 tftp 伺服器獲得。

引用自:https://unix.stackexchange.com/questions/180429