Ho una ifdichiarazione per calcolare i file ed eliminare tutti tranne gli ultimi tre file. Ma voglio eseguire questo comando da remoto. Come posso combinare sshcon una ifcondizione?
Ho provato questo, ma senza successo.
#!/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"
L'errore che ho ricevuto:
ls: impossibile accedere a * .tgz: nessun file o directory
$( )parte del comando viene eseguita dalla shell locale prima ancora che inizi il sshcomando. Questo è vero sia quando $( )è solo, sia quando è racchiuso da "s. Tuttavia, se $( )fosse all'interno di 's, non verrebbe eseguito dalla shell locale.