ssh接続の場合、シェルがクリーンであるかどうかをテストする簡単な方法があります。対話型シェルを起動するのではなく、ssh接続からコマンドを実行します。false
このコマンドは、すぐに任意の出力を生成せずに終了しますので、それは良いテストです。
bash$ ssh remotehost false
Enter passphrase for key '/home/user/.ssh/my_private_key':
bash$
そのコマンドラインが出力を生成する場合、起動スクリプトの1つが原因です。
bash$ ssh remotehost false
Enter passphrase for key '/home/user/.ssh/my_private_key':
Welcome to RemoteHost!
This system is company property and is provided for authorized use only,
as set forth in applicable written policies. Unauthorized use is prohibited
and may be subject to discipline, civil suit and criminal prosecution.
Welcome back - You last logged in 16 days ago...
bash$
このエラーが発生しているかどうかを確認するもう1つのことは、rsyncがインストールされており、sshで検索できるかどうかです。
bash$ ssh remotehost "rsync --version"
Enter passphrase for key '/home/user/.ssh/my_private_key':
rsync version 3.0.9 protocol version 30
Copyright (C) 1996-2011 by Andrew Tridgell, Wayne Davison, and others.
Web site: http://rsync.samba.org/
Capabilities:
64-bit files, 64-bit inums, 64-bit timestamps, 64-bit long ints,
socketpairs, hardlinks, symlinks, IPv6, batchfiles, inplace,
append, ACLs, xattrs, iconv, symtimes
rsync comes with ABSOLUTELY NO WARRANTY. This is free software, and you
are welcome to redistribute it under certain conditions. See the GNU
General Public Licence for details.
bash$
rsyncがパスにない場合、代わりに次のようなものが表示されます。
bash$ ssh remotehost "rsync --version"
Enter passphrase for key '/home/user/.ssh/my_private_key':
bash: rsync: command not found
bash$
これを修正するには、rsyncをインストールするか、rsyncがインストールされているが異常な場所にある場合は、その場所をrsyncコマンドラインに渡します。
rsync -avvvz -e "ssh -i /home/thisuser/cron/thishost-rsync-key" \
--rsync-path="/usr/local/bin/rsync" \
remoteuser@remotehost:/remote/dir /this/dir/
ESC x shell
、およびdoすることですexport TERM=xterm; ssh remotehost ls
。制御文字またはその他の偽の出力が表示された場合、それを見つける必要があります。