[sudo로 redirect를 할때 퍼미션 에러 나올때]


1. 일반적인 경우

$ sudo sh -c 'ls -al /etc > /tmp/ls_etc'


2. 변수를 쓰는 경우

   일반적인 경우와 같이 하면 root의 변수가 아니기 때문에 다른 값이 나옴

   아래의 경우에는 /etc의 ls 결과가 나오는게 아니고 /의 ls결과가 나옴

$ TESTDIR=etc

$ sudo sh -c 'ls -al /$TESTDIR > /tmp/ls_etc'


  3. 

$ TESTDIR=etc

echo "ls -al /$TESTDIR > /tmp/ls_etc" | sudo sh


EOF

Posted by 광장군
,

[CentOS 5.x - timeout 사용하기]

CentOS 5.x 에는 timeout이 포함되어 있는 coreutils 패키지가 5.x 까지만 포함됨

timeout 과 유사한 기능을 shell 로 만들거나 다른 프로그램을 사용 할 수 있지만,

꼭 timeout 만 써야겠다 할 경우

gnu에서 coreutils 최신 소스 받아서 컴파일 해서 사용하면 됨


# mkdir /root/tmp

# cd /root/tmp

# yum install xz.x86_64

# wget http://ftp.gnu.org/gnu/coreutils/coreutils-8.14.tar.xz

# xz -d coreutils-8.14.tar.xz

# tar xvf coreutils-8.14.tar

# cd coreutils-8.14

# ./configure --prefix=/root/tmp

# make

# make install

# mv /root/tmp/bin/timeout /usr/bin/

# cd /root

# rm -fr /root/tmp

# timeout 1 sleep 2 && echo "bingo"

# timeout 3 sleep 2 && echo "bingo"

bingo


Posted by 광장군
,

[CentOS에서 ntfs mkfs 및 mount]


1. Repository에 RPMForge 등록

* i386        http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.i386.rpm

* x86_64    http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm


# wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm


# rpm -Uvh rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm


2. ntfs-3g 패키지 설치

# yum install fuse fuse-ntfs-3g


3. ntfsprogs 설치

# yum install ntfsprogs


4. mkfs - 오래걸림

# mkfs.ntfs /dev/sdb1


5. mount

# mount -t ntfs-3g /dev/sdb1 /mnt


참고 :   http://blog.naver.com/PostView.nhn?blogId=aries84&logNo=100133097816

http://blog.naver.com/myrilke/150043178822


Posted by 광장군
,

[디스크에 여유가 있는데 파일을 생성하지 못할 경우]


파일사이즈 평균 10K인 캐시 디렉토리토리에서

디스크는 79% 정도 밖에 사용하지 않았는데 파일을 추가로 만들 수 없는 문제 발견

원인은 inode 에 할당된 크기가 default 4K로 되어 있어서 작은 파일이 많은 시스템엔 부적합


# mkfs.ext4 -b 2048 -i 2048 -O ^has_journal /dev/sda1


위 명령으로 block size를 2048로 inode 할당 size를 2048로 수정

그리고 SSD의 수명 연장을 위해 저널링 기능 뺌


단 문제점은 128G 하드에서

4K-block일때는 118G 를 사용 가능했었는데

2K-block일때는 105G 만 사용 가능

'Linux' 카테고리의 다른 글

CentOS 5.x - timeout 사용하기  (0) 2012.06.05
[CentOS에서 ntfs mkfs 및 mount]  (0) 2012.04.20
리눅스(우분투) 시스템 하드 복사  (0) 2012.04.06
파티션 UUID 확인 하는 방법  (1) 2012.02.17
awk IP주소 가져오기  (0) 2012.02.07
Posted by 광장군
,

[리눅스(우분투) 시스템 하드 복사]

임광일. 2012. 04. 06.


기존 디스크가 두개 있는 시스템에

디스크를 하나 더 붙인 후 추가한 디스크에 시스템을 복사하고자함

sda는 데이터 디스크이고, sdb가 시스템 디스크

시스템 : Ubuntu 11.04, 2.6.38-13-generic x86_64


작업한 과정을 기억나는대로 순서대로 재구성한 내용입니다.

세밀한 설명 없이 러프하게 정리해놨습니다.

아마 맞는 내용이겠지만 빠진 부분이 있을 수도 있습니다.

해보고 안되는 부분은 각자 찾아서 작업 하시길


하드 추가하기 전 디스크 정보

# sudo -i

# fdisk -l

Disk /dev/sda: 500.1 GB, 500107862016 bytes

Disk identifier: 0xae69ae69


   Device Boot      Start         End      Blocks   Id  System

/dev/sda1               1       60801   488384001   83  Linux


Disk /dev/sdb: 146.8 GB, 146815737856 bytes

Disk identifier: 0x000e4536


   Device Boot      Start         End      Blocks   Id  System

/dev/sdb1               1          13       96256   82  Linux swap / Solaris

Partition 1 does not end on cylinder boundary.

/dev/sdb2   *          13          25       97280   83  Linux

Partition 2 does not end on cylinder boundary.

/dev/sdb3              25       17850   143179776   83  Linux


추가 디스크를 붙이니, 아래와 같이 기존 sdb는 sdc로 옮겨지고 추가된 디스크는 sdb로 잡힘

# fdisk -l


Disk /dev/sda: 500.1 GB, 500107862016 bytes

Disk identifier: 0xae69ae69


   Device Boot      Start         End      Blocks   Id  System

/dev/sda1               1       60801   488384001   83  Linux


Disk /dev/sdb: 120.0 GB, 120034123776 bytes

Disk identifier: 0xed18e86a


   Device Boot      Start         End      Blocks   Id  System


Disk /dev/sdc: 146.8 GB, 146815737856 bytes

Disk identifier: 0x000e4536


   Device Boot      Start         End      Blocks   Id  System

/dev/sdc1               1          13       96256   82  Linux swap / Solaris

Partition 1 does not end on cylinder boundary.

/dev/sdc2   *          13          25       97280   83  Linux

Partition 2 does not end on cylinder boundary.

/dev/sdc3              25       17850   143179776   83  Linux


fdisk로 sdb를 파티션 나누고 파일시스템 생성

# fdisk /dev/sdb

# mkswap /dev/sdb1

# mkfs.ext4 /dev/sdb2

# mkfs.ext4 /dev/sdb3

# fdisk -l


Disk /dev/sda: 500.1 GB, 500107862016 bytes

Disk identifier: 0xae69ae69


   Device Boot      Start         End      Blocks   Id  System

/dev/sda1               1       60801   488384001   83  Linux


Disk /dev/sdb: 120.0 GB, 120034123776 bytes

Disk identifier: 0xed18e86a


   Device Boot      Start         End      Blocks   Id  System

/dev/sdb1               1          12       96358+  83  Linux

/dev/sdb2              13          24       96390   83  Linux

/dev/sdb3              25       14593   117025492+  83  Linux


Disk /dev/sdc: 146.8 GB, 146815737856 bytes

Disk identifier: 0x000e4536


   Device Boot      Start         End      Blocks   Id  System

/dev/sdc1               1          13       96256   82  Linux swap / Solaris

Partition 1 does not end on cylinder boundary.

/dev/sdc2   *          13          25       97280   83  Linux

Partition 2 does not end on cylinder boundary.

/dev/sdc3              25       17850   143179776   83  Linux


sdb2 마운트 후 /boot 데렉토리 복사

# mount -t ext4 -o discard /dev/sdb2 /mnt

# cd /mnt/

# cp -avx /boot/* ./

# cd /; umount /dev/sdb2


sdb3 마운트 후 복사하지 않고 생성만 하는 디렉토리 및 링크 생성

(13.04에서는 ln -s lib lib64 없어도 됨, 13.04에서는 /lib /lib64가 링크가 아닌 실제 파일로 따로 존재)

# mount -t ext4 -o discard /dev/sdb3 /mnt

# cd /mnt/

# cp -av /initrd.img /initrd.img.old /vmlinuz /vmlinuz.old ./

# ln -s lib lib64

# mkdir boot mnt proc selinux sys


/ 파일 시스템 디렉토리 복사

(13.04에서는 디렉토리가 약간 다름. 잘 확인해서 작업)

# cp -avx /bin /build /cdrom /dev /etc /home /lib /lib32 /media /opt /root /sbin /srv /temp /tmp /usr /var ./


dev 파일시스템 링크 수정

(13.04에서는 이부분 필요 없음. /dev/에 ln -s sdb3 root 와 같은 링크 자체가 필요 없음)

# cd /mnt/dev/

# rm -f root

# ln -s sdb3 root


fstab 파일 수정

# blkid 

/dev/sda1: UUID="21d93731-466c-4aa7-8d69-99c92385bc7f" TYPE="ext4" 

/dev/sdb1: UUID="bcc1e001-07cd-4faa-95e8-e9c0d058a2b9" TYPE="swap" 

/dev/sdb2: UUID="ca0adb92-0bed-4def-bd94-101cc681959f" TYPE="ext4" 

/dev/sdb3: UUID="d0dc267e-258b-4d33-81d2-614654fe1e72" TYPE="ext4" 

/dev/sdc1: UUID="63008eba-57ed-4775-ac32-9ccb43c19bc5" TYPE="swap" 

/dev/sdc2: UUID="3ac66cec-4707-4687-b1a5-4351588622ad" TYPE="ext4" 

/dev/sdc3: UUID="ec2a8ab5-6daf-49bb-a745-0d07c4a7b795" TYPE="ext4" 

# vi /mnt/etc/fstab

---- /mnt/etc/fstab ---------------------------------------------------------------------------------

proc                                            /proc               proc    nodev,noexec,nosuid 0   0

UUID=d0dc267e-258b-4d33-81d2-614654fe1e72       /                   ext4    errors=remount-ro   0   1

UUID=ca0adb92-0bed-4def-bd94-101cc681959f       /boot               ext4    defaults            0   2

UUID=bcc1e001-07cd-4faa-95e8-e9c0d058a2b9       none                swap    sw                  0   0

UUID=21d93731-466c-4aa7-8d69-99c92385bc7f       /home/kilim/DATA    ext4    defaults            0   0

-----------------------------------------------------------------------------------------------------


sdb3 언마운트 후 sdb2 다시 마운트

# cd /; umount /dev/sdb2

# mount -t ext4 -o discard /dev/sdb2 /mnt


grub 설정 변경 및 MBR에 부트로더 생성

# cd /mnt/grub

# perl -p -i -e "s/3ac66cec-4707-4687-b1a5-4351588622ad/ca0adb92-0bed-4def-bd94-101cc681959f/g" grub.cfg 

# perl -p -i -e "s/ec2a8ab5-6daf-49bb-a745-0d07c4a7b795/d0dc267e-258b-4d33-81d2-614654fe1e72/g" grub.cfg

# grub-install --root-directory=/mnt /dev/sdb


sdb2 언마운트 후 재부팅

# cd /; umount /dev/sdb2

# sync

# shutdown -r now


재부팅 과정에서 CMOS 세팅에서 부팅 디스크를 교체한 디스크로 세팅




Posted by 광장군
,

kilim@kilim-office:~$ sudo blkid

[sudo] password for kilim: 

/dev/sda1: UUID="21d93731-466c-4aa7-8d69-99c92385bc7f" TYPE="ext4" 

/dev/sdb1: UUID="7ef6d5d2-f3ec-4d6b-aaea-4beff1251855" TYPE="ext4" 

/dev/sdc1: UUID="63008eba-57ed-4775-ac32-9ccb43c19bc5" TYPE="swap" 

/dev/sdc2: UUID="3ac66cec-4707-4687-b1a5-4351588622ad" TYPE="ext4" 

/dev/sdc3: UUID="ec2a8ab5-6daf-49bb-a745-0d07c4a7b795" TYPE="ext4" 

kilim@kilim-office:~$


Posted by 광장군
,

awk IP주소 가져오기

Linux 2012. 2. 7. 16:47

ifconfig `netstat -nr | awk '{ if($1 == "0.0.0.0") {print $8}}'` | awk -F: '/inet addr/ {print $2}' | awk '{print $1}'


'Linux' 카테고리의 다른 글

리눅스(우분투) 시스템 하드 복사  (0) 2012.04.06
파티션 UUID 확인 하는 방법  (1) 2012.02.17
man 내용 파일로 저장하기  (0) 2012.02.02
areca 1212-1222 핫스페이, 리빌드 관련 정보  (0) 2012.01.17
GeoIP 업데이트  (0) 2011.12.29
Posted by 광장군
,

man wget | col -b > man_wget.txt

 
Posted by 광장군
,
* areca 1212-1222 메뉴얼에 나오는 내용

High availability

• Global Hot Spares
A Global Hot Spare is an unused online available drive, which is
ready for replacing the failure disk. The Global Hot Spare is one
of the most important features that SAS RAID controllers provide
to deliver a high degree of fault-tolerance. A Global Hot Spare
is a spare physical drive that has been marked as a global hot
spare and therefore is not a member of any RAID set. If a disk
drive used in a volume set fails, then the Global Hot Spare will
automatically take its place and he data previously located on the
failed drive is reconstructed on the Global Hot Spare.
For this feature to work properly, the global hot spare must have
at least the same capacity as the drive it replaces. Global Hot
Spares only work with RAID level 1, 10, 3, 5, 6, 30, 50, or 60
volume set. You can configure up to three global hot spares with
SAS RAID controller.
The “Create Hot Spare” option gives you the ability to define
a global hot spare disk drive. To effectively use the global hot
spare feature, you must always maintain at least one drive that is
marked as a global spare.

• Hot-Swap Disk Drive Support
The SAS RAID controller chip includes a protection circuit that
supports the replacement of SAS/SATA hard disk drives without
having to shut down or reboot the system. A removable hard
drive tray can deliver “hot swappable” fault-tolerant RAID solutions.
This feature provides advanced fault tolerant RAID protection
and “online” drive replacement.
 
• Auto Declare Hot-Spare
If a disk drive is brought online into a system operating in degraded
mode, the SAS RAID controllers will automatically declare
the new disk as a spare and begin rebuilding the degraded
volume. The Auto Declare Hot-Spare function requires that the
smallest drive contained within the volume set in which the failure
occurred.
In the normal status, the newly installed drive will be reconfigured
an online free disk. But, the newly-installed drive is automatically
assigned as a hot spare if any hot spare disk was used
to rebuild and without new installed drive replaced it. In this
condition, the Auto Declare Hot-Spare status will be disappeared
if the RAID subsystem has since powered off/on.
Important:
The hot spare must have at least the same capacity as the
drive it replaces.
The Hot-Swap function can be used to rebuild disk drives in arrays
with data redundancy such as RAID level 1, 10, 3, 5, 6, 30,
50 and 60.

• Auto Rebuilding
If a hot spare is available, the rebuild starts automatically when
a drive fails. The SAS RAID controllers automatically and transparently
rebuild failed drives in the background at user-definable
rebuild rates.
If a hot spare is not available, the failed disk drive must be replaced
with a new disk drive so that the data on the failed drive
can be automatically rebuilt and so that fault tolerance can be
maintained.
The SAS RAID controllers will automatically restart the system
and rebuilding process if the system is shut down or powered off
abnormally during a reconstruction procedure condition.
When a disk is hot swapped, although the system is functionally
operational, the system may no longer be fault tolerant. Fault
tolerance will be lost until the removed drive is replaced and the
rebuild operation is completed.
During the automatic rebuild process, system activity will continue
as normal, however, the system performance and fault tolerance
will be affected.
 
• Adjustable Rebuild Priority
Rebuilding a degraded volume incurs a load on the RAID subsystem.
The SAS RAID controllers allow the user to select the rebuild
priority to balance volume access and rebuild tasks appropriately.
The Background Task Priority is a relative indication of how much
time the controller devotes to a background operation, such as
rebuilding or migrating.
The SAS RAID controller allows user to choose the task priority
(Ultra Low (5%), Low (20%), Medium (50%), High (80%)) to balance
volume set access and background tasks appropriately. For
high array performance, specify an Ultra Low value. Like volume
initialization, after a volume rebuilds, it does not require a system
reboot.

 

'Linux' 카테고리의 다른 글

파티션 UUID 확인 하는 방법  (1) 2012.02.17
awk IP주소 가져오기  (0) 2012.02.07
man 내용 파일로 저장하기  (0) 2012.02.02
GeoIP 업데이트  (0) 2011.12.29
리눅스/linux 에서 SSD TRIM 기능 작동되는지 확인 방법  (0) 2011.12.12
Posted by 광장군
,

GeoIP 업데이트

Linux 2011. 12. 29. 10:35

# wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz
# gzip -d GeoIP.dat.gz
# mv /usr/share/GeoIP/GeoIP.dat /usr/share/GeoIP/GeoIP.dat_`date +%Y%m%d` 
# mv GeoIP.dat /usr/share/GeoIP/
# /etc/rc.d/init.d/httpd stop
# /etc/rc.d/init.d/httpd start
# rm -f GeoIP.dat.gz


* 최신 데이터 :  http://geolite.maxmind.com/download/geoip/database/
Posted by 광장군
,