Ä¿ÇǴнº, ½Ã½ºÅÛ ¿£Áö´Ï¾îÀÇ ½°ÅÍ Ä¿ÇÇÇâÀÌ ³ª´Â *NIX
Ä¿ÇǴнº
½Ã½ºÅÛ/³×Æ®¿÷/º¸¾ÈÀ» ´Ù·ç´Â °÷
* HanIRCÀÇ #coffeenix ¹æ
[ Àåºñ ¹× ȸ¼± ÈÄ¿ø ]
HOME > ½Ã½ºÅÛ °ü¸® / ¼­¹ö¿î¿µ µµ¿ò¸»
°Ë»ö : »çÀÌÆ® WHOIS À¥¼­¹ö Á¾·ù

ÃÖÀûÈ­ / Æ©´× / ¼º´É°³¼± (6, ±Û 1, ÀÚ·á 3)
µð½ºÅ© ÄõÅÍ(quota) (3, ±Û 1, ÀÚ·á 3)
µð½ºÅ© °ü¸® / ÆÄÀϽýºÅÛ / mount (34, ±Û 13, ÀÚ·á 12)
¹é¾÷(backup) / ½Ã½ºÅÛ º¹±¸ (14, ±Û 6, ÀÚ·á 11)
¼­¹ö¿î¿µ (8, ±Û 2, ÀÚ·á 9)
ÇÁ¸°ÅÍ °ü¸® / ÇÁ¸°Æà (7)
ÆÐÅ°Áö °ü¸® / ÆÐÄ¡ / rpm (10, ±Û 5, ÀÚ·á 1)
ºÎÆÃ, boot / LILO / GRUB (10, ±Û 5, ÀÚ·á 9)
¼­¹ö ¸ð´ÏÅ͸µ (10, ±Û 5, ÀÚ·á 2)
·Î±×ÀÎ / ·Î±×¾Æ¿ô (1)
·Î±×(log) / syslog (5, ±Û 3, ÀÚ·á 3)
¸Þ¸ð¸®, ½º¿Ò(swap), ·¥µð½ºÅ©(ramdisk) (3, ±Û 2)
»ç¿ëÀÚ °ü¸®(°èÁ¤ °ü¸®) (1, ÀÚ·á 1)

  ÅÚ·¹±×·¥(Telegram)À¸·Î ¼­¹ö ¸ð´ÏÅ͸µÇϱâ ÀÛ¼ºÀÏ : 2014/10/14 19:05
 
  • ±Û¾´ÀÌ : ÁÁÀºÁøÈ£ ( http://coffeenix.net/ )
  • Á¶È¸¼ö : 17653
          [ ÀÌÀüÈ­¸é / ¼öÁ¤ ]   ºñ¹Ð¹øÈ£ :     Àμâ¿ë È­¸é
      Á¦  ¸ñ : ÅÚ·¹±×·¥(Telegram)À¸·Î ¼­¹ö ¸ð´ÏÅ͸µÇϱâ
    ÀÛ¼ºÀÚ : ÁÁÀºÁøÈ£(truefeel, http://coffeenix.net/ )
    ÀÛ¼ºÀÏ : 2014.10.6(¿ù)
    Á¤¸®ÀÏ : 2014.10.13(¿ù)

    ¸Þ½ÅÀú °Ë¿­·Î 'ÅÚ·¹±×·¥(Telegram)' ±¤Ç³ÀÌ ºÒ°í ÀÖ´Ù. °³ÀÎÀûÀ¸·Î Ä«ÅåÀ» ÀÚÁÖ »ç¿ëÇÏÁö ¾Ê¾Æ, ÅÚ·¹±×·¥ÀÌ Àý½Ç(?)ÇÏ°Ô ÇÊ¿äÇÏÁö ¾Ê´Ù. ÇÏÁö¸¸ ÅÚ·¹±×·¥À» »ç¿ëÇؾßÇÒ ÀÌÀ¯°¡ »ý°å´Ù. ÅÚ·¹±×·¥ÀÌ ¼­¹ö¿¡¼­ »ç¿ëÇÒ ¼ö ÀÖ´Â CLI¸¦ Á¦°øÇÏ°í ÀÖ°í, lua³ª pythonÀ¸·Î ¼Õ½±°Ô ¸Þ½ÅÀú¿Í ¿¬µ¿ÇÒ ¼ö ÀÖ´Ù.
    ±×·¡¼­ ÅÚ·¹±×·¥¿ë lua½ºÅ©¸³Æ®¸¦ ¸¸µé¾î¼­ ¼­¹ö »óŸ¦ Æù¿¡¼­ ¹Þ¾Æº¼ ¼ö ÀÖ´Ù. ¿¹¸¦ µé¾î ƯÁ¤ ¼­¹öÀÇ MRTG/RRD¸¦ ¸Þ½ÅÀú·Î ¿äûÇÏ¸é ±× À̹ÌÁö¸¦ ¹Þ¾Æ º¼ ¼ö ÀÖ´Ù. ¼­¹öÀÇ load°ªµµ °°Àº ¹æ½ÄÀ¸·Î return¹ÞÀ» ¼ö ÀÖ´Ù. ¼­¹öÀå¾Ö ¹®ÀÚ¸¦ ÅÚ·¹±×·¥À¸·Î ¹ÞÀ» ¼ö ÀÖµµ·Ï ÇϽźеµ ÀÖ´Ù. (¡Ø °³ÀÎÀûÀ¸·Î´Â ÀÌ¹Ì SMS·Î ¹Þ°í ÀÖ´Â °ÍÀ» ´Ù½Ã ÅÚ·¹±×·¥¿ëÀ¸·Î ¸¸µé ÇÊ¿ä´Â ¾ø¾ú´Ù.)

    ÅÚ·¹±×·¥ CLI¼³Ä¡´Â '¸®´ª½º¿¡ ÅÚ·¹±×·¥(Telegram) CLI ¼³Ä¡' (http://coffeenix.net/board_view.php?bd_code=1759 , ±Û ÁÁÀºÁøÈ£)¸¦ Âü°íÇÏ°í, ÀÌ ±ÛÀº ¼­¹ö ¸ð´ÏÅ͸µ¿ë ÅÚ·¹±×·¥ ½ºÅ©¸³Æ®¿Í ½ÇÁ¦ »ç¿ë ¿¹¸¦ º¸¿©ÁÙ °ÍÀÌ´Ù.


    1. ÅÚ·¹±×·¥ lua ½ºÅ©¸³Æ® ±âº» ±¸Á¶

    ¸Þ½ÃÁö¸¦ ¼ö½ÅÇϸé on_msg_receive ÇÔ¼ö°¡ È£ÃâµÈ´Ù. ÀÌ ÇÔ¼ö³»¿¡¼­ send_msg, send_photo, send_text µîÀÇ ÇÔ¼ö¸¦ ÀÌ¿ëÇؼ­ ¸Þ½ÃÁö¸¦ »ó´ë¿¡¼­ º¸³¾ ¼ö ÀÖ´Ù. ´ÙÀ½Àº 'hello'¸¦ ¼ö½ÅÇϸé, °á°ú¸¦ º¸³»ÁØ´Ù.

    [ ½ºÅ©¸³Æ® ±âº» ±¸Á¶ : hello.lua ]
     
    function on_msg_receive (msg)
    ¡¡¡¡¡¡if ( msg.text == 'hello' ) then
    ¡¡¡¡¡¡¡¡¡¡¡¡send_msg(msg.from.print_name, "world", ok_cb, false)
    ¡¡¡¡¡¡¡¡¡¡¡¡return
    ¡¡¡¡¡¡end
    end
    function ok_cb(extra, success, result)
    end
     


     
    $ bin/telegram-cli -s hello.lua
    ... »ý·« ...
    [14:21]  Jinho >>> aa
    User Jinho is typing
    [14:22]  Jinho >>> bb
    User Jinho is typing
    User Jinho is typing
    [14:22]  Jinho >>> Çï·Î¿ì
    User Jinho is typing
    [14:22]  Jinho >>> hello
    [14:22]  Jinho <<< world
    User Jinho marked read 1 outbox and 0 inbox messages
    >
     


    [ telegram-cli ½ÇÇàÈ­¸é ]


    [ ½º¸¶Æ®Æù ¾îÇà ȭ¸é ]



    2. ¼­¹ö¸ð´ÏÅ͸µ¿ë ½ºÅ©¸³Æ® »ìÆ캸±â

    [ ¸ð´ÏÅ͸µ¿ë ½ºÅ©¸³Æ® ÀϺΠ: server_mon.lua ]
     
    now = os.time()

    dir_cmd¡¡¡¡¡¡¡¡¡¡¡¡= "/home/cnx/cmd"
    cmd_ping¡¡¡¡¡¡= "cd ".. dir_cmd .."; sh ping.sh"
    cmd_load¡¡¡¡¡¡= "cd ".. dir_cmd .."; sh load.sh"
    cmd_netlog¡¡¡¡¡¡= "cd ".. dir_cmd .."; sh show_netlog.sh"
    cmd_mrtg¡¡¡¡¡¡= "cd ".. dir_cmd .."; perl mrtg.pl"
    cmd_404¡¡¡¡¡¡¡¡¡¡¡¡= "cd ".. dir_cmd .."; perl 404.pl"

    mrtg_res¡¡¡¡¡¡= {"load", "swap", "public_if", "private_if", "disk_io", "memory_free", "memory_inactive"}
    auth_phone¡¡¡¡¡¡= {["821012345678"] = true, ["821087654321"] = true }

    -- ¸Þ½ÃÁö ¼ö½Å ó¸®
    function on_msg_receive (msg)
    ¡¡¡¡¡¡if msg.date < now then
    ¡¡¡¡¡¡¡¡¡¡¡¡return
       ¡¡¡¡¡¡end
    ¡¡¡¡¡¡if msg.out then
    ¡¡¡¡¡¡¡¡¡¡¡¡return
    ¡¡¡¡¡¡end

    ¡¡¡¡¡¡-- command
    ¡¡¡¡¡¡local recv_msg = ""
    ¡¡¡¡¡¡if ( msg.text ~= nil ) then
    ¡¡¡¡¡¡¡¡¡¡¡¡recv_msg  = string.gsub(msg.text,"[;|<>]","")¡¡¡¡¡¡-- ¹ÞÀº msgÁß¿¡ ;, |, <, > µîÀÇ ¹®ÀÚ´Â Áö¿ò
    ¡¡¡¡¡¡end
    ¡¡¡¡¡¡local cmd, arg  = split(recv_msg)¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡-- exam : ping a b c d => cmd = "ping", arg = "a b c d"
    ¡¡¡¡¡¡local file_name = ""
    ¡¡¡¡¡¡cmd = string.lower(cmd)
    ¡¡¡¡¡¡print("receive : ", cmd, "\n")

    ¡¡¡¡¡¡-- user_info
    ¡¡¡¡¡¡print("Name    : ", msg.from.print_name)¡¡¡¡¡¡¡¡¡¡¡¡-- ¸Þ½ÃÁö º¸³½»ç¶÷ real name (Jinho)
    ¡¡¡¡¡¡print("Phone   : ", msg.from.phone)¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡-- ¸Þ½ÃÁö º¸³½»ç¶÷ ÀüÈ­¹øÈ£  (8210AAAABBBB)
    ¡¡¡¡¡¡print("Msg Num : ", msg.id)¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡-- ¸Þ½ÃÁö ¹øÈ£
    ¡¡¡¡¡¡print("to.Name : ", msg.to.print_name)

    ¡¡¡¡¡¡-- ÀϹݴëÈ­, ºñ¹Ð´ëÈ­ ±¸ºÐÇؼ­ ¸Þ½ÃÁö Àü¼Û
    ¡¡¡¡¡¡if (msg.to.id == our_id) then
    ¡¡¡¡¡¡¡¡¡¡¡¡user_id¡¡¡¡¡¡= msg.from.print_name¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡-- ÀϹݴëȭâ
    ¡¡¡¡¡¡else
    ¡¡¡¡¡¡¡¡¡¡¡¡user_id¡¡¡¡¡¡= msg.to.print_name¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡-- ºñ¹Ð´ëȭâ
    ¡¡¡¡¡¡end

    ¡¡¡¡¡¡-- auth (ÁöÁ¤ÇÑ Æù¹øÈ£¸¸ ÀÎÁõ)
    ¡¡¡¡¡¡if auth_phone[msg.from.phone] then
    ¡¡¡¡¡¡¡¡¡¡¡¡print "auth    : OK "
    ¡¡¡¡¡¡else
    ¡¡¡¡¡¡¡¡¡¡¡¡print "auth    : invalid user"
    ¡¡¡¡¡¡¡¡¡¡¡¡return
    ¡¡¡¡¡¡end
    ¡¡¡¡¡¡mark_read(user_id, ok_cb, false)¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡-- ÀÐÀº ¸Þ½ÃÁö·Î Ç¥½Ã

    ¡¡¡¡¡¡-- ping
    ¡¡¡¡¡¡if ( cmd == 'ping' ) then
    ¡¡¡¡¡¡¡¡¡¡¡¡os.execute(cmd_ping .. arg)
    ¡¡¡¡¡¡¡¡¡¡¡¡send_text(user_id, dir_cmd ..'/result_ping.txt', ok_cb, false)
    ¡¡¡¡¡¡¡¡¡¡¡¡return
    ¡¡¡¡¡¡end

    ¡¡¡¡¡¡-- load
    ¡¡¡¡¡¡if ( cmd == 'load' ) then
    ¡¡¡¡¡¡¡¡¡¡¡¡... »ý·« ...
    ¡¡¡¡¡¡end

    ¡¡¡¡¡¡-- netlog
    ¡¡¡¡¡¡if ( cmd == 'netlog' ) then
    ¡¡¡¡¡¡¡¡¡¡¡¡... »ý·« ...
    ¡¡¡¡¡¡end

    ¡¡¡¡¡¡-- MRTG
    ¡¡¡¡¡¡if ( cmd == 'mrtg' ) then
    ¡¡¡¡¡¡¡¡¡¡¡¡os.execute(cmd_mrtg .. arg)
    ¡¡¡¡¡¡¡¡¡¡¡¡arg = trim(arg)
    ¡¡¡¡¡¡¡¡¡¡¡¡for i=1, table.maxn(mrtg_res) do
    ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡file_name = dir_cmd .."/".. arg .."_".. mrtg_res[i] .."-day.png"¡¡¡¡¡¡-- DIR/FILE
    ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡-- print (file_name)
    ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡if ( file_exists(file_name) ) then
    ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡send_photo(user_id, file_name, ok_cb, false)
    ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡end
    ¡¡¡¡¡¡¡¡¡¡¡¡end
    ¡¡¡¡¡¡¡¡¡¡¡¡return
    ¡¡¡¡¡¡end

    ¡¡¡¡¡¡-- web 403/404 status
    ¡¡¡¡¡¡if ( cmd == '404' ) then
    ¡¡¡¡¡¡¡¡¡¡¡¡... »ý·« ...
    ¡¡¡¡¡¡end

    ¡¡¡¡¡¡-- help
    ¡¡¡¡¡¡-- if ( cmd ~= '' ) then
    ¡¡¡¡¡¡if ( cmd == 'help' ) then
    ¡¡¡¡¡¡¡¡¡¡¡¡send_text(user_id, dir_cmd ..'/help.txt', ok_cb, false)
    ¡¡¡¡¡¡end
    end

    ... »ý·« ...
     


    ÁÖ¿äºÎºÐÀ» »ìÆ캸ÀÚ.
     
    if ( cmd == 'ping' ) then
    ¡¡¡¡¡¡os.execute(cmd_ping .. arg)
    ¡¡¡¡¡¡send_text(user_id, dir_cmd ..'/result_ping.txt', ok_cb, false)
    ¡¡¡¡¡¡return
    end
     


    ¸ð´ÏÅ͸µ¿ë ½ºÅ©¸³Æ®¿¡¼­´Â °¢ ¸í·É¾î¸¶´Ù ¿ÜºÎ ¸í·ÉÀ» È£ÃâÇÏ°í °á°ú¸¦ textÆÄÀÏ·Î ÀúÀåÇß´Ù. ±×¸®°í, ±× textÆÄÀÏ ³»¿ëÀ» ¸Þ½ÃÁö·Î »Ñ·ÁÁöµµ·Ï Çß´Ù. ¸í·É¾î Ãß°¡´Â if ( cmd == '¸í·É¾î ' ) then ÇüÅ·ΠȮÀåÇØÁÖ°í, ¿ÜºÎ ¸í·É ó¸®ÇÒ ½ºÅ©¸³Æ®¸¸ ¸¸µé¾îÁÖ¸é µÈ´Ù.

     
    if (msg.to.id == our_id) then
    ¡¡¡¡¡¡user_id¡¡¡¡¡¡= msg.from.print_name¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡-- ÀϹݴëȭâ
    else
    ¡¡¡¡¡¡user_id¡¡¡¡¡¡= msg.to.print_name¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡-- ºñ¹Ð´ëȭâ
    end
     


    secret chatÀ» Áö¿øÇÑ´Ù. msg.to.id == our_id ¶ó¸é, Áï ¹Þ´Â »ç¶÷°ú CLI ¸Þ½ÅÀú À¯Àú°¡ °°´Ù¸é ÀϹݴëȭâÀ¸·Î ´ëÈ­ÁßÀÌ°í, ±×·¸Áö ¾Ê´Â °ÍÀº ºñ¹Ð´ëÈ­ÀÌ´Ù. ºñ¹Ð´ëÈ­´Â msg.from.print_nameÀÌ ¾Æ´Ñ msg.to.print_name ¿¡°Ô ¸Þ½ÃÁö¸¦ º¸³»¾ß ÇÑ´Ù. ¾Æ·¡ ·çƾÀÌ ¾ø´Ù¸é Æù¿¡¼­ ºñ¹Ð´ëÈ­·Î ¸Þ½ÃÁö¸¦ º¸³Â´õ¶óµµ CLI¿¡¼­´Â ÀÀ´äÀ» ÀϹݴëȭâÀ¸·Î º¸³½´Ù.

     
    if auth_phone[msg.from.phone] then
    ¡¡¡¡¡¡print "auth    : OK "
    else
    ¡¡¡¡¡¡print "auth    : invalid user"
    ¡¡¡¡¡¡return
    end
     


    auth_phone ¿¡¼­ ÁöÁ¤ÇÑ ÈÞ´ëÆù¿¡¼­¸¸ ¸í·ÉÀ» ó¸®ÇÑ´Ù.

     
    mark_read(user_id, ok_cb, false)
     


    ¸Þ½ÃÁö¸¦ ÀÐÀº °ÍÀ¸·Î Ç¥½ÃÇÑ´Ù.

    ¡Ø lua½ºÅ©¸³Æ®¸¦ óÀ½ÇغôÙ. lua ¸Å´º¾óÀ» º¸¸é¼­ ½ºÅ©¸³Æ®¸¦ ÇÏ·ç¿¡ ¸¸µé°í, ±× ÀÌÈÄ¿¡ Çѹø ±â´ÉÀ» Ãß°¡ÇÑ Á¤µµ´Ù. ±×·¡¼­ ½ºÅ©¸³Æ® lua°³¹ßÀÚµéÀÌ º¸±â¿¡´Â ÁÁÁö ¾ÊÀº ºÎºÐµµ ÀÖÀ» °ÍÀÌ´Ù. lua°í¼ö¿¡°Ô´Â ¿¬Çʱï´Â Įó·³ »¶»¶ÇÏ°Ô º¸ÀÏ ¼ö ÀÖ°ÚÁö¸¸, ´©±º°¡ ´Ùµë¾î »ç¿ëÇÏ¸é »ý¼±È¸°¨¿ë Įó·³ ÈḢ(?)ÇÏ°Ô ¾²ÀÏ ¼ö ÀÖÀ» °Í °°´Ù.

    ¡Ø ping.sh, load.sh µîÀÇ ¿ÜºÎ È£Ãâ ½ºÅ©¸³Æ®´Â °ø°³ÇÏÁö ¾Ê°Ú´Ù. ³»ºÎ ¼­¹öµéÀÇ µ¥ÀÌÅ͸¦ ÃßÃâÇÏ´Â ºÎºÐÀÌ¶ó¼­ °ø°³ÇϱⰡ ½±Áö ¾Ê°í, ÀÌ ±ÛÀ» Àд ºÐµéÀÇ ¼­¹ö»óȲÀÌ Àú¿Í´Â ´Ù¸¦Å×´Ï ½ºÅ©¸³Æ® ³»¿ëº¸´Ù´Â È£Ãâ ¹æ½Ä¸¸ ´«¿©°Ü º¸¸é ÁÁÀ» °Í °°´Ù.


    3. ÅÚ·¹±×·¥ CLI ½ÇÇà

     
    $ bin/telegram-cli -s server_mon.lua
    ¶Ç´Â
    $ bin/telegram-cli -s server_mon.lua -d &
     


    Å×½ºÆ®À§Çؼ­´Â -s ¿É¼Ç¸¸, ÃßÈÄ ¿î¿µÇϱâ À§Çؼ­´Â -d ¿É¼ÇÀ¸·Î ³Ö¾î µ¥¸óÇüÅ·Π½ÇÇàÇÑ´Ù.

    [ telegram-cli È­¸é : help¸¦ º¸³»ÁÖ°í, ping °á°ú¸¦ º¸³»ÁØ È­¸é  ]


    [ ½º¸¶Æ®Æù ¾îÇà ȭ¸é : ¾Æ¹«Å°³ª ÀÔ·ÂÇؼ­ µµ¿ò¸»À» È®ÀÎ, ¼­¹ö±×·ìº° ping°ú °³º° IPº° ping °á°ú ¿äû ]

    ¡Ø ½ºÅ©¸³Æ®¸¦ ¼öÁ¤Çؼ­ 'help'¸í·ÉÀ» ³»·ÈÀ» ¶§¸¸ µµ¿ò¸»À» º¸¿©ÁÖµµ·Ï ¹Ù²å´Ù. ½ºÅ©¸³Æ® ¼öÁ¤ Àü¿¡ ĸÃÄÇÑ °ÍÀÓ.


    [ telegram-cli È­¸é : load °á°ú, MRTG ±×·¡ÇÁ 7°³¸¦ º¸³»ÁØ È­¸é  ]


    [ ½º¸¶Æ®Æù ¾îÇà ȭ¸é : load °á°ú, MRTG ±×·¡ÇÁ¸¦ ¹ÞÀº È­¸é ]



    4. Âü°íÀÚ·á

    * ÅÚ·¹±×·¥ CLI ¼Ò½º¿¡ µé¾îÀÖ´Â test.lua

    * ÅÚ·¹±×·¥ README-LUA
      https://github.com/vysheng/tg/blob/master/README-LUA

    * Lua check if a file exists
      http://stackoverflow.com/questions/4990990/lua-check-if-a-file-exists

    * Telegram Messenger Client
      http://www.forum-raspberrypi.de/Thread-tutorial-telegram-messenger-client-auf-dem-raspberry?page=2
      Ä¿ÇǴнº Ä«Æä ÃÖ±Ù ±Û
    [12/25] Àνº&#5
    [10/20] Cross Compiler ±ò
    [07/14] SSL ¬¡¬°
    [04/26] Re: µµ½ºÈ­¸é ¿ø°ÝÁ¶Á¾ ¿©ºÎ
    [04/25] µµ½ºÈ­¸é ¿ø°ÝÁ¶Á¾ ¿©ºÎ
    [10/30] Cshell¿¡¼­ ³­¼ö ¼³Á¤
    [10/23] °øÇ×öµµÁÖ½Äȸ»ç SE ±¸ÀÎ Ëì
    [01/26] Re: wgetÀ¸·Î ´Ù¸¥¼­¹ö¿¡ÀÖ´Â µð·ºÅ丮¸¦ °¡Á®¿À·Á°íÇÕ´Ï´Ù.
    [01/25] wgetÀ¸·Î ´Ù¸¥¼­¹ö¿¡ÀÖ´Â µð·ºÅ丮¸¦ °¡Á®¿À·Á°íÇÕ´Ï´Ù.
    [01/11] ƯÁ¤ ¾Èµå·ÎÀ̵å WebView ¹öÀü¿¡¼­ SSL ¹®Á¦ (WebView ¹ö±×)
    [08/01] DNS forwarder (Àü´ÞÀÚ) ¼­¹ö¸¦ ÅëÇؼ­ Äõ¸®ÇÏ¸é ¿ª¹æÇâÀ» ¹Þ¾Æ¿ÀÁú ¸øÇÕ´Ï´Ù.
    [05/16] (ÁÖ)ÈÄÀÌÁî ½Ã½ºÅÛ¿£Áö´Ï¾î (°æ·ÂÀÚ) ¸ðÁý
    [02/15] [AWS] Cloudfront edge È®ÀÎÇϱâ
    [01/20] Mobile Service/eCommerce ±â¾÷¿¡¼­ Server / Java / PHP °³¹ßÀÚ ±¸ÀÎ
    [01/11] źźÇÑ ÆÛºí¸®½Ì ¸ð¹ÙÀϱâ¾÷¿¡¼­ Mobile °³¹ßÀÚ¸¦ ¸ð½Ê´Ï´Ù.
      New!   ÃÖ±Ù¿¡ µî·ÏÇÑ ÆäÀÌÁö
      KiCad EDA Suite project (Free/Libre/Open-Source EDA Suite) (CAD)
      ¿ÀÇÂij½ºÄÉÀ̵å ijµå (OpenCASCADE CAD)
      QCad for Windows --- GNU GPL (Free Software)
      The Hello World Collection
      IPMI¸¦ È°¿ëÇÑ ¸®´ª½º ¼­¹ö°ü¸®
      DNS ¼³Á¤ °Ë»ç
      nagiosgraph ¼³Ä¡ ¹æ¹ý
      Slony-I ¼³Ä¡ ¹æ¹ý (postgresql replication tool)
      Qmail±â¹ÝÀÇ Anti spam ½Ã½ºÅÛ ±¸ÃàÇϱâ
      clusterssh

    [ ÇÔ²²ÇÏ´Â »çÀÌÆ® ]




    ¿î¿µÁø : ÁÁÀºÁøÈ£(truefeel), ¾ß¼ö(yasu), ¹ü³ÃÀÌ, sCag
    2003³â 8¿ù 4ÀÏ~