ifファイルを計算し、最新の3つのファイルを除くすべてを削除するステートメントがあります。しかし、このコマンドをリモートで実行したいと思います。条件と組み合わせるにsshはどうすればよいifですか?
私はこれを試しましたが、成功しませんでした。
#!/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"
私が得たエラー:
ls:* .tgzにアクセスできません:そのようなファイルまたはディレクトリはありません
$( )コマンドの一部は、コマンドを開始する前にローカルシェルによって実行されsshます。$( )スタンドアロンの場合も、"s で囲まれた場合も同じです。ただし、s $( )内にある場合は'、ローカルシェルによって実行されません。