2021/07/14(水) [n年前の日記]
#1 [linux][debian] 旧自宅サーバ機のファイルを代替機に転送中
旧自宅サーバ機に積んでいた IDE-HDD、HITACHI HDS721616PLAT80 (UATA133, 160GB, 7200rpm) を、200円PCケース機に接続して、USBメモリから起動した Knoppix 8.6.1 DVD を使って、自宅サーバ代替機に rsync で転送しようとしているところ。
200円PCケース機のスペックは以下。
_100円ショップで買ってきたA4ラックでPCケースモドキを作った
_200円PCケースのその後
さておき、こんな感じの酷い状態で作業しているところ…。
上の白いケースが代替機。下のアレなのが200円PCケース機。左下に、旧自宅サーバ機のHDD。その左横に、HDDを冷やすための12cm FAN。HDDを連続で回すと発熱するのだけど、60度を越えると転送エラーが出始めることを以前体験したので、念のために冷やしつつ作業してる。sudo hddtemp /dev/sda で HDDの温度を確認したけど、この状態で46度ぐらいだった。
200円PCケース機のスペックは以下。
- CPU : AMD Sempron 3100+ (1.8GHz、Socket754, 1Core)
- M/B : MSI K8MM-V (VIA K8M800+VT8237R, MicroATX, PCI x 3, AGP(4X/8X) x 1, SATA 1.5G, UATA133, VGA S3 UniChome Pro IGP)
- RAM : 1.5GB
- 電源 : FSP300-60GLS
_100円ショップで買ってきたA4ラックでPCケースモドキを作った
_200円PCケースのその後
さておき、こんな感じの酷い状態で作業しているところ…。
上の白いケースが代替機。下のアレなのが200円PCケース機。左下に、旧自宅サーバ機のHDD。その左横に、HDDを冷やすための12cm FAN。HDDを連続で回すと発熱するのだけど、60度を越えると転送エラーが出始めることを以前体験したので、念のために冷やしつつ作業してる。sudo hddtemp /dev/sda で HDDの温度を確認したけど、この状態で46度ぐらいだった。
◎ rsyncについて。 :
rsync を使うと、LAN経由でファイルの同期転送ができるらしい。Knoppix 8.6.1 DVD にも rsync が同梱されていたので、これを利用する。
転送元は knoppix 8.6.1、転送先は Debian 10 buster、IPアドレス 192.168.1.22。
転送先の Debian 側で、root で sshログインできる設定にしておく。/etc/ssh/sshd_config で PermitRootLogin yes に変更。メンテナンス作業が終わったら no にする。一応、LAN内PCのみが ssh でログインできるように、/etc/hosts.deny に sshd : all を書いてから、/etc/hosts.allow に sshd : 192.168.0. 等を記述しておいた。
rsync を使って、以下のような指定で転送。この場合、/media/sda1 に、旧自宅サーバ機の「/」が、/media/sda2 に、旧自宅サーバ機の「/home」が入っている。転送先ディレクトリは /home/oldpcbak/ 以下。
sudo をつけないとパーミッションの関係で転送されないファイルが出てきてしまう。途中で気がついて、慌てて付け始めた。ただ、後になって、Knoppix には Root Shell なるメニュー項目が用意されていると知った…。もしかしてそちらを立ち上げて作業すれば済んだのでは…。あるいは sudo -s で root になってから作業するのもアリだったかも…。
ちなみに、sudo du -h | sort -hr で、使用状況・ファイルサイズをソートした状態で確認できる。
以下、参考ページ。
_rsyncで進捗状況を表示する方法
_du -h などの結果を簡単にソートする - Qiita
_rsyncを使った熟練者レベルのバックアップ:Command Technica(1/3 ページ) - ITmedia エンタープライズ
_rsyncオプション - Qiita
_CD-ROM起動でハードディスクからファイルを救出@謎の処理系 SunOS 4.1.4 with Linux/FreeBSD
転送元は knoppix 8.6.1、転送先は Debian 10 buster、IPアドレス 192.168.1.22。
転送先の Debian 側で、root で sshログインできる設定にしておく。/etc/ssh/sshd_config で PermitRootLogin yes に変更。メンテナンス作業が終わったら no にする。一応、LAN内PCのみが ssh でログインできるように、/etc/hosts.deny に sshd : all を書いてから、/etc/hosts.allow に sshd : 192.168.0. 等を記述しておいた。
rsync を使って、以下のような指定で転送。この場合、/media/sda1 に、旧自宅サーバ機の「/」が、/media/sda2 に、旧自宅サーバ機の「/home」が入っている。転送先ディレクトリは /home/oldpcbak/ 以下。
sudo rsync -avuzP /media/sda1 root@192.168.1.22:/home/oldpcbak/sda1 sudo rsync -avuzP /media/sda2 root@192.168.1.22:/home/oldpcbak/home
- rsync [オプション] 転送元 転送先、で指定する。
- -a : アーカイブオプション。再帰、所有者情報の保持等。
- -v : 情報出力
- -u : 転送先にファイルが存在して、転送先のタイムスタンプが新しい場合は転送しない。
- -z : 転送時に圧縮
- -P|--progress : 進捗状態を表示
- 転送先は、ユーザ名@ホスト名:/hoge/fuga/piyo、みたいな形で指定する。
sudo をつけないとパーミッションの関係で転送されないファイルが出てきてしまう。途中で気がついて、慌てて付け始めた。ただ、後になって、Knoppix には Root Shell なるメニュー項目が用意されていると知った…。もしかしてそちらを立ち上げて作業すれば済んだのでは…。あるいは sudo -s で root になってから作業するのもアリだったかも…。
ちなみに、sudo du -h | sort -hr で、使用状況・ファイルサイズをソートした状態で確認できる。
以下、参考ページ。
_rsyncで進捗状況を表示する方法
_du -h などの結果を簡単にソートする - Qiita
_rsyncを使った熟練者レベルのバックアップ:Command Technica(1/3 ページ) - ITmedia エンタープライズ
_rsyncオプション - Qiita
_CD-ROM起動でハードディスクからファイルを救出@謎の処理系 SunOS 4.1.4 with Linux/FreeBSD
◎ ファイルサイズが異なる謎。 :
一部のファイルはエラーが出て転送できなかったものの、それでもある程度は転送できたのだけど。du を使ってファイルサイズを調べたら、一部のフォルダに関して、転送元と転送先の総ファイルサイズが異なっていて…。
sudo du -b | sort > ~knoppix/Desktop/size.txt みたいな形でテキストファイルにして、diff size.txt sizenew.txt で比較してみても、どのファイルがおかしくなっているのか分からない…。ファイルが壊れた状態で転送されてしまったのか、それともファイルは正常に転送されているけど別の何かで総ファイルサイズが異なってしまうのか。
でもまあ、一切ファイルをコピーできない状況よりマシなのではないか、と思うことにする…。大半のフォルダは、サイズが同じになっているし…。
ちなみに、~knoppix/Desktop/size.txt は、rcp を使って代替機側に転送した。
sudo du -b | sort > ~knoppix/Desktop/size.txt みたいな形でテキストファイルにして、diff size.txt sizenew.txt で比較してみても、どのファイルがおかしくなっているのか分からない…。ファイルが壊れた状態で転送されてしまったのか、それともファイルは正常に転送されているけど別の何かで総ファイルサイズが異なってしまうのか。
でもまあ、一切ファイルをコピーできない状況よりマシなのではないか、と思うことにする…。大半のフォルダは、サイズが同じになっているし…。
ちなみに、~knoppix/Desktop/size.txt は、rcp を使って代替機側に転送した。
sudo rcp ~knoppix/Desktop/size.txt username@192.168.1.22:/home/username/
◎ 所有者やパーミッションを変更。 :
旧自宅サーバ機は Vine Linux で動かしていて、代替機は Debian Linux 10 (buster) で動いているので、ユーザIDやグループID等が全然違ってしまっている。転送したファイルの所有者については、只の数値が表示されている状態。
sudo chown を使って、所有者を変更していかないといけない…。
とりあえず、samba の共有フォルダは、nobody:nogroup にしておけばいいので、sudo chown -R nobody:nogroup ./* で変更、したような気がする。メモするのを忘れたけど、たぶんそんな感じだったような。-R が、再帰的な変更。
パーミッションも変更したい。samba の共有フォルダ内は、ディレクトリが 777、ファイルは 666 にしておきたい。以下の記事が参考になった。
_ファイルやディレクトリのパーミッションを一括で置換したい - Qiita
さて。samba の共有フォルダはこれで済んだけど、こういった作業をユーザ別に行っていかないといかんわけで…。旧自宅サーバ機では、その時々のノリで、ユーザアカウントを安易に増やしていってしまったので、結構な数が…。
ちなみに、chown に「--from=ユーザ名」をつければ、特定の所有者ファイルを変更していけるらしい。
_ある特定の所有者ファイルを別ユーザへ変更する - Qiita
これを使って作業していかないと…。
sudo chown を使って、所有者を変更していかないといけない…。
とりあえず、samba の共有フォルダは、nobody:nogroup にしておけばいいので、sudo chown -R nobody:nogroup ./* で変更、したような気がする。メモするのを忘れたけど、たぶんそんな感じだったような。-R が、再帰的な変更。
パーミッションも変更したい。samba の共有フォルダ内は、ディレクトリが 777、ファイルは 666 にしておきたい。以下の記事が参考になった。
_ファイルやディレクトリのパーミッションを一括で置換したい - Qiita
sudo find . -type d -exec chmod 777 {} + sudo find . -type f -exec chmod 666 {} +
さて。samba の共有フォルダはこれで済んだけど、こういった作業をユーザ別に行っていかないといかんわけで…。旧自宅サーバ機では、その時々のノリで、ユーザアカウントを安易に増やしていってしまったので、結構な数が…。
ちなみに、chown に「--from=ユーザ名」をつければ、特定の所有者ファイルを変更していけるらしい。
_ある特定の所有者ファイルを別ユーザへ変更する - Qiita
これを使って作業していかないと…。
[ ツッコむ ]
以上です。