ClarkConnect 4.3 CE 설치

ClarkConnect 4.3 CE버전을 두번째 서버에 설치하였다. 4.2버전에서 문제되었던 8169드라이버 문제는 업데이트 되면서 해결된 모양이다.
rt8169 와 nvidia mcp67 내장 랜을 자동으로 인식한다.
PHP와 MySQL 은 4.3 과 4.1 버전이므로 cc4.2에서처럼 업데이트를 수행한다.


1. ClarkConnect에 Kernel 소스 및 개발 도구 설치
# apt-get update
# apt-get install cc-devel kernel-sourcecode kernel-devel


2. 소스 트리를 업데이트한다.
# echo “rpm [pcn] ftp://rhel-4:hiptop@rh.apt.clarkconnect.com System extras” > /etc/apt/sources.list.d/extras.list
# apt-get update


3. MySQL과 PHP가 인스톨되어 있으면
# apt-get dist-upgrade


4. php 모듈을 설치 ( 나머지는 자동으로 설치됨)
# apt-get update
# apt-get install php-gd php-soap php-xml


5. Webmin 설치  webmin 다운로드
# rpm -U webmin-1.430-1.noarch.rpm


6. grub.conf 수정
초기 로딩시 화면 깨짐 문제와 Graphic Console의 에러를 수정하기 위하여 Grub.conf의 다음과 같은 내용을 수정한다.
———————————————————————–
kernel /vmlinuz-2.6.18-8.1.14.3.cc ro root=/dev/md2 video=vesafb vga=0x314
———————————————————————–
———————————————————————–
kernel /vmlinuz-2.6.18-8.1.14.3.cc ro root=/dev/md2 video=vga16fb vga=0x314
———————————————————————–


7. svn 설치
  기본 설치되는 subversion은 svn 1.1.4-2 버전이므로 1.4.4 버전으로 업데이트
# apt-get install neon
# apt-get install subversion

  svn 1.4.4에 맞는 apr과 apr-util rpm을 다운받는다. (neon은 변경없음)
#rpm -U apr-0.9.12-2.i386.rpm
#rpm -U apr-util-0.9.12-1.i386.rpm
#rpm -U subversion-1.4.4-1.i386.rpm

  서비스에 추가
# echo “svnserve -d -r /home/svn/dev1” > /etc/init.d/svn
# chmod 755 /etc/init.d/svn

8. 사용자에게 ssh 권한주기
  4.x버전 부터는 사용자는 보안상 기본적으로 ssh를 적용할 수 없다. 보안을 무시하고 ssh권한을 주겠다면 다음과 같이 수행한다.
  webconfig에서 사용자를 추가한다
# passwd <username>
# usermod -s /bin/bash <username>

9. RocketRaid 1740의 Open Source 드라이버는 4.2 와 설치 방법이 동일

ClarkConnect4.2 CE Cyrus IMAP 관련

ClarkConnect 4.2 CE 의 Cyrus IMAP 2.2.12 기준
Cyrus-IMAP의 메일 박스에 이상이 생겨서 POP를 로그인을 할 수 없었다. ClarkConnect Forum에서 다음과 같은 내용을 찾았다.

기존의 Mail Box를 텍스트파일로 덤프:


su – cyrus -c “/usr/lib/cyrus-imapd/ctl_mboxlist -d”  > /var/lib/imap/mailboxlist.txt


텍스트파일에서  Mail Box 생성:


su – cyrus -c “/usr/lib/cyrus-imapd/ctl_mboxlist -u” > /var/lib/imap/mailboxlist.txt


MailBox를 다시 생성:


su – cyrus -c “/usr/lib/cyrus-imapd/reconstruct -r -f user”

메일 박스에러로 인해 IMAP또는 POP3를 로그인할 수 없을때에는 MailBox를 다시 생성해주면 된다.

원문보기 : http://www.clarkconnect.com/forums/showflat.php?Cat=0&Number=89008&Main=88543

Java UDP를 이용한 Magic Packet Sender

개인적으로 쓰려고 Java UDP를 이용하여 Magic Packet을 전송하는 프로그램을 만들어봤다.

실행 화면

Java Magic Packet Sender
Java Magic Packet Sender







관련 소스



import java.io.*;
import java.net.*;
import java.util.*;

public class Main extends javax.swing.JFrame
{

 public Main()
 {
  initComponents();
 }

 private void initComponents()
 {
  this.setTitle(“Java Magic Packet Sender”);
  bTrans = new javax.swing.JButton();
  bClose = new javax.swing.JButton();
  mac_address = new javax.swing.JTextField();
  mac_address.setText(“”);
  mac_address.setColumns(20);
  bClose.setText(“닫기”);
  bClose.addActionListener(new java.awt.event.ActionListener()
  {
   public void actionPerformed(java.awt.event.ActionEvent evt)
   {
    ExitActionPerformed(evt);
   }
  });
  bTrans.setText(“전송”);
  bTrans.addActionListener(new java.awt.event.ActionListener()
  {
   public void actionPerformed(java.awt.event.ActionEvent evt)
   {
    TransActionPerformed(evt);
   }
  });
  getContentPane().add(“East”, bTrans);
  getContentPane().add(“South”, bClose);
  getContentPane().add(“Center”, mac_address);
  setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
  pack();
 }

 private boolean parseMacAddress(String text)
 {
  boolean result = true;
  if (text.equals(“”))
   return false;
  try
  {
   int minus = text.indexOf(“-“);
   int colon = text.indexOf(“:”);
   if (minus >= 0)
   {
    StringTokenizer token = new StringTokenizer(text, “-“, false);
    int count = token.countTokens();
    mac = new byte[count];
    for (int i = 0; i < count; i++)
    {
     String to = token.nextToken();
     byte temp = (byte)(Integer.parseInt(to, 16));
     mac[i] = temp;
    }
   }
   else if (colon >= 0)
   {
    StringTokenizer token = new StringTokenizer(text, “:”, false);
    int count = token.countTokens();
    mac = new byte[count];
    for (int i = 0; i < count; i++)
    {
     String to = token.nextToken();
     byte temp = (byte)(Integer.parseInt(to, 16));
     mac[i] = temp;
    }
   }
   else
   {
    result = false;
   }

  }
  catch (Exception e)
  {
   result = false;
  }
  return result;
 }

 private void TransActionPerformed(java.awt.event.ActionEvent evt)
 {

  if (mac_address.getText() != null && !mac_address.getText().equals(“”))
  {
   if (parseMacAddress(mac_address.getText()))
   {
    try
    {
     int total_length = header.length + (mac.length * 16);
     message = new byte[total_length];
     for (int i = 0; i < header.length; i++)
     {
      message[i] = header[i];
     }
     int count = header.length;
     for (int j = 0; j < 16; j++)
     {
      for (int i = 0; i < mac.length; i++)
      {
       message[count++] = mac[i];
      }
     }
     InetAddress group = InetAddress.getByName(“255.255.255.255”);
     DatagramSocket ds = new DatagramSocket(6);
     DatagramPacket dsheaer = new DatagramPacket(message, message.length, new InetSocketAddress(“255.255.255.255”, 6));
     ds.send(dsheaer);
     ds.close();
    }
    catch (Exception e)
    {
     e.printStackTrace();
    }
   }
  }
 }

 private void ExitActionPerformed(java.awt.event.ActionEvent evt)
 {
  this.dispose();
 }

 public static void main(String args[])
 {

  if (args != null && args.length > 1)
  {

  }
  java.awt.EventQueue.invokeLater(new Runnable()
  {
   public void run()
   {
    new Main().setVisible(true);
   }
  });
 }

 private byte[] header = { (byte)255, (byte)255, (byte)255, (byte)255, (byte)255, (byte)255 };
 private byte[] mac;
 private byte[] message;
 private javax.swing.JButton bTrans;
 private javax.swing.JButton bClose;
 private javax.swing.JTextField mac_address;

}

RocketRaid 1740 RAID HDD 교체


1. /etc/fstab 에 연결된 Array의 Mount를 삭제 후 리부팅한다.
2. HtpSrv에 접속하여 Manage -> Array -> Mainterence -> Delete 선택하여 Array를 삭제한다.
3. Array가 삭제되면 unplug를 이용하여 모든 HDD를 정지시킨다.
4. 모든 HDD를 교체한다.
5. Manage -> Device -> Initialize Device를 이용하여 모든 HDD를 초기화 한다.
6. Manage -> Array -> Create Array를 이용하여 Array를 생성한다.
    ( RAID 0, 1, 5, 10 중 선택)
7. Manage -> Array -> Initailize Array 를 이용하여 Array를 초기화 한다.
8. fdisk 수행후 Array를 Format
   ext3 : mke2fs -j /dev/sda1
   ext2 : mkfs -t ext2 /dev/sda1
9. Array를 Mount
   마운트 폴더를 생성 : mkdir  /disk
   ext3 : mount -t ext3 /dev/sda1 /disk
   ext2 : mount -t ext2 /dev/sda1 /disk
10. fatab에 추가
   vi /etc/fstab
   /dev/sda1 /disk ext3 defaults 1 2