(2005-08の一覧)
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

2005-08-10 Wed (他の年の同じ日: 2007)

多バイトファイル名の文字コード変更スクリプト
2005-08-10-3 / カテゴリ: [programming][perl] / [permlink]

というわけで試作。Perl 5.8+ 用。shift_jis -> eucjp 固定
#!/usr/bin/perl

use Encode qw(from_to);
use File::Find;

my $basedir = shift;
-d $basedir or die "Usage $0 dir\n";

find( sub {
        my $target = $_;
        sj2e($target) if -f $target;
      },
      $basedir);

find( sub {
        my $target = $_;
        sj2e($target) if -d $target;
      },
      $basedir);

sub sj2e {
  my $from = shift;
  my $to = $from;
  from_to($to, "shiftjis", "euc-jp");
  rename($from, $to) ? print "renamed: ", $File::Find::name, "\n" :
    print "renamed failed: ", $File::Find::name, "\n";
}
なんか、ムダに長いなぁ。ってか、1パスで動作させた方がスマートかも。
ascii のみのファイル/ディレクトリの場合は、同じファイル名への rename のため失敗するが、仕様です :p

smb.conf の文字コード設定が有効なのは global のみ??
2005-08-10-2 / カテゴリ: [linux][debian][samba] / [permlink]

/dev/hdd1 に SJIS でネーミングされたファイルが大量にある。
/dev/hdb1 に EUC-JP として、全部コピーしたい。

文字コードを設定した mount は、ext2/ext3 では使えず、smbfs や NTFS 等だけみたいなので、
hdd1 を dos charset = CP932 / unix charset = CP932
hdb1 を dos charset = CP932 / unix charset = eucJP-ms
として samba 共有し、win から cp すればクリアできると思ったが…

[global]セクションに設定したコード設定は有効だけど、それ以外のセクション([share-1]とか)は、コードの設定が効かない…

こーゆーことをしたかったんだけどなぁ。
[share-b]
   path = /mnt/hdb1
   comment = hdb1
   browseable = yes
   writable = yes
   create mask = 0644
   directory mask = 0755
   dos charset = CP932
   unix charset = eucJP-ms
	 
[share-d]
   path = /mnt/hdd1
   comment = hdd1
   browseable = yes
   writable = yes
   create mask = 0644
   directory mask = 0755
   dos charset = CP932
   unix charset = CP932

rename スクリプト作るのが手っ取り早いのかな。

HDD増設
2005-08-10-1 / カテゴリ: [linux][debian] / [permlink]

先月末に / が吹っ飛び、バックアップ用に /dev/hdb として使ってたやつを / (/dev/hda) に持ってきたので、新しく /dev/hdb としてセット。つか、買ったのはやっぱ先月末だったんだけど、フォーマットしてなかった。

パーティションの作成
# fdisk /dev/hdb
:
Command (m for help): p

Disk /dev/hdb: 160.0 GB, 160041885696 bytes
255 heads, 63 sectors/track, 19457 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-19457, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-19457, default 19457):
Using default value 19457

Command (m for help): p

Disk /dev/hdb: 160.0 GB, 160041885696 bytes
255 heads, 63 sectors/track, 19457 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/hdb1               1       19457   156288321   83  Linux

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.
めんどっちぃので、1パーティションブッタ切りで :D

フォーマット
# mkfs -t ext3 /dev/hdb1
mke2fs 1.37 (21-Mar-2005)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
19546112 inodes, 39072080 blocks
1953604 blocks (5.00%) reserved for the super user
First data block=0
1193 block groups
32768 blocks per group, 32768 fragments per group
16384 inodes per group
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,

        4096000, 7962624, 11239424, 20480000, 23887872

Writing inode tables:
:
:

マウント
# mkdir /mnt/hdb1
# mount /dev/hdb1 /mnt/hdb1/
# ls /mnt/hdb1/
lost+found/

買ったのは Seagate の ST3160021A で、160GB/7200rpm
某での書込みを見る限りでは、音量は結構静かな感じだったけど、サーバ用ってことでずっと 5400rpm のディスクばっかり使ってた自分には、ちょっとうるさく感じた…
前の日 / 次の日 / 最新 / 2005-08

2013 : 01 02 03 04 05 06 07 08 09 10 11 12
2012 : 01 02 03 04 05 06 07 08 09 10 11 12
2011 : 01 02 03 04 05 06 07 08 09 10 11 12
2010 : 01 02 03 04 05 06 07 08 09 10 11 12
2009 : 01 02 03 04 05 06 07 08 09 10 11 12
2008 : 01 02 03 04 05 06 07 08 09 10 11 12
2007 : 01 02 03 04 05 06 07 08 09 10 11 12
2006 : 01 02 03 04 05 06 07 08 09 10 11 12
2005 : 01 02 03 04 05 06 07 08 09 10 11 12
2004 : 01 02 03 04 05 06 07 08 09 10 11 12

最終更新時間: 2013-05-02 16:12