Mam ifinstrukcję do obliczania plików i usuwania wszystkich oprócz trzech ostatnich plików. Ale chcę uruchomić to polecenie zdalnie. Jak mogę połączyć sshz ifwarunkiem?
Próbowałem tego, ale bez powodzenia.
#!/bin/bash
ssh -t test@192.168.94.139 "cd /var/www/test.com/backup ;
if [ $(ls | wc -l) -lt 3 ]
then
echo "Less"
else [ $(ls -t *.tgz|awk 'NR >3'|xargs rm -f) ]
echo "deleted"
fi"
Wystąpił błąd:
ls: nie można uzyskać dostępu * .tgz: nie ma takiego pliku ani katalogu
$( )Część polecenia jest wykonywany przez lokalną powłoce, zanim jeszcze rozpocznie sshkomendę. Dotyczy to zarówno sytuacji $( )samodzielnych, jak i otoczonych przez "s. Jednak gdyby $( )był w środku ', nie byłby wykonywany przez lokalną powłokę.