2025/08/19 -------------------------------------------------------------------------------- 【方法1】rsyncでドライランする -------------------------------------------------------------------------------- # RHEL9 側から実行例(コピーはせず比較のみ) rsync -avnc --delete user@old-solaris:/path/to/app/ /path/to/app/ -n … ドライラン(実際にコピーしない) -c … ファイル内容(チェックサム)で比較 -a … パーミッション・時刻などを保持して比較 --delete … 存在しないファイルの差異も確認 -------------------------------------------------------------------------------- 【方法2】find + cksum or md5sum or sha256sum の照合 -------------------------------------------------------------------------------- 新旧サーバーそれぞれで以下を実行し、.txtをdiffで比較する cd /path/to/app find . -type f -exec cksum {} \; | sort > /tmp/app_cksum.txt ※.txtは別途ファイル転送が必要。 面倒なら両サーバ上ともWebサーバであることを利用し、Apacheのhtdocs配下に.txtを出力し、 ローカルPCからcurl等で取得して比較するのもよさげ。 -------------------------------------------------------------------------------- cksum や md5sum はファイル内容まで含めて比較できる。 両方のサーバーでアーカイブ不要。tar でまとめて転送したい場合は tar czf - ... | ssh ... でハッシュだけ取ることも可能。 -------------------------------------------------------------------------------- 【方法3】find + cksum or md5sum をssh越しに実行 -------------------------------------------------------------------------------- # RHEL 側から実行 ssh user@old-solaris "cd /path/to/app && find . -type f -exec cksum {} \; | sort" > old_cksum.txt cd /path/to/app && find . -type f -exec cksum {} \; | sort > new_cksum.txt diff old_cksum.txt new_cksum.txt -------------------------------------------------------------------------------- 【方法4】ローカルとFTP越しとでls -lRを実行し出力を比較 -------------------------------------------------------------------------------- # RHEL 側から実行 lftp -e "ls -lR /path/to/app; bye" -u user,password ftp://old-solaris > old_filelist.txt ls -lR /path/to/app > new_filelist.txt diff old_filelist.txt new_filelist.txt ------ または ------ lftp -u user1,password1 ftp://old-solaris -e "cls -lR /path/to/app; bye" > old_filelist.txt ls -lR /path/to/app > new_filelist.txt diff old_filelist.txt new_filelist.txt ※cls はLIST -Clコマンドに対応しており、ファイルの詳細情報(パーミッション、サイズ、最終更新日時など)も表示 -------------------------------------------------------------------------------- 【方法5】おとなしく両ソースディレクトリをローカルにDLしてdiff -rで比較 -------------------------------------------------------------------------------- 最終的にはこうするしかない。 -------------------------------------------------------------------------------- 【使用不可】find + printfの結果をdiffで比較 -------------------------------------------------------------------------------- # メタデータ比較スクリプト #!/bin/bash # 各サーバーで実行 find /path/to/directory -type f -printf "%s %T@ %p\n" | sort > metadata.txt ※Solaris11のfindコマンドでは-printfが使えないので利用不可 -------------------------------------------------------------------------------- rsync -avnc --delete user@old-solaris:/path/to/app/ /path/to/app/ の user@old-solaris の部分を、 ftp://user1:password1@old-solaris と指定することはできますか? -------------------------------------------------------------------------------- (回答)できない。rsyncが対応しているのはsshとrsync独自プロトコルだけ。 ※curlやwgetはftpが使える。 -------------------------------------------------------------------------------- sshを旧サーバーSolaris側で実行して比較することもできますか。 新サーバーRHEL9側で実行するのに比べてデメリットがありますか。 -------------------------------------------------------------------------------- 一応できるが、一般に旧サーバーの方が遅いので処理時間が掛かるのと、 旧サーバーは運用中という前提で負荷を避けるべきなのと、 RHELのsshd暗号化設定を下げる必要がありそうな三点がネック。 方法1 rsync -avnc --delete /path/to/app/ user@new-rhel9:/path/to/app/ 方法2 # Solaris 側 find /path/to/app -type f -exec cksum {} \; | sort > /tmp/old_cksum.txt scp /tmp/old_cksum.txt user@new-rhel9:/tmp/ --------------------------------------------------------------------------------