顯示具有 Linux 標籤的文章。 顯示所有文章
顯示具有 Linux 標籤的文章。 顯示所有文章

2013年5月24日 星期五

socket + pthread 資源佔用情形解決

socket + pthread 資源佔用情形解決

在使用 pthread_create 建立 thread 處理 socket 的時候要注意,縱使 socket close 了,資源還是會被 thread 佔用住,此時要採用分離式 thread,才能在 thread 結束時自動釋放資源,最簡單的方式是建立 thread 後設定為 detach。

    while (1)
    {
        newsockfd = accept(sockfd,
                (struct sockaddr *) &cli_addr, &clilen);
        if (newsockfd < 0)
            exit(1);
        pthread_t thread1;
        pthread_create(&thread1, NULL, doSocketThread, &newsockfd );
        pthread_detach(thread1);
    }

2008年9月9日 星期二

Samba Server 新增使用者

adduser id
smbpasswd -a id
若有 libssl.so.2 找不到 可找找底下替代 lib

ln -s /usr/lib/libssl.so.0.9.6 /usr/lib/libssl.so.2

ln -s /usr/lib/libcrypto.so.0.9.6 /usr/lib/libcrypto.so.2

2008年9月8日 星期一

POSTFIX 增加郵件群組的功能

nano /etc/postfix/main.cf
===================================
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
===================================

nano aliases
===================================
maillist: aaa, bbb, ccc, ddd, eee
===================================

postalias /etc/aliases
postfix reload                    <== 如果 main.cf 有改到的話則需要重啟

2008年5月28日 星期三

Linux 時間調校

系統時間不使用 UTC(GMT)…
nano /etc/default/rcS
---------------------------------------------------
UTC=no
---------------------------------------------------

重設時區…
rm /etc/localtime

cp -a /usr/share/zoneinfo/Asia/Taipei /etc/localtime

手動校正時間MMDDhhmmYYYY…
date 052808542008

時間寫入 bios…
hwclock -w

安裝 ntp 網路時間同步…
apt-get install ntpdate

與 ntp server 同步時間…
ntpdate time.stdtime.gov.tw

時間寫入 bios…
hwclock -w

系統自動校時…
nano /etc/crontab
---------------------------------------------------
10 5 * * * root /usr/sbin/ntpdate time.stdtime.gov.tw && /sbin/hwclock -w
---------------------------------------------------

2008年5月27日 星期二

使用 rsync 備份、備援、鏡像

備份主機…
server side ( backup server、mirror server )…
=======================================
安裝 rsync…
apt-get install rsync

設置 rsync…
nano /etc/default/rsync
-------------------------------------------
RSYNC_ENABLE=true
-------------------------------------------

設置 rsync client…
nano /etc/rsyncd.conf
-------------------------------------------
[backup_home]
hosts allow = xxx.xxx.xxx.xxx
hosts deny = *
path = /home
auth users = backup_admin
uid = root
gid = root
secrets file = /etc/rsyncd.secrets
read only = no

[backup_www]
hosts allow = xxx.xxx.xxx.xxx
hosts deny = *
path = /var/www
auth users = backup_admin
uid = root
gid = root
secrets file = /etc/rsyncd.secrets
read only = no
-------------------------------------------

設置密碼…
nano /etc/rsyncd.secrets
-------------------------------------------
backup_admin:password1234
-------------------------------------------

變更權限…
chown root:root /etc/rsyncd.secrets
chmod 600 /etc/rsyncd.secrets

啟動 rsync …
/etc/init.d/rsync start or restart
=======================================


待備份電腦…
client side ( main server、www server )…
=======================================
安裝 rsync…
apt-get install rsync

設置密碼…
nano /etc/rsyncd.passwd
-------------------------------------------
password1234
-------------------------------------------

變更權限
chmod 600 /etc/rsyncd.passwd
chown root:root /etc/rsyncd.passwd

shell 下執行備份(/home/)…
rsync -arHz --progress --delete --password-file=/etc/rsyncd.passwd /home/ backup_admin@xxx.xxx.xxx.xxx::backup_home
(一行指令)

shell 下執行備份(/var/www/)…
rsync -arHz --progress --delete --password-file=/etc/rsyncd.passwd /var/www/ backup_admin@xxx.xxx.xxx.xxx::backup_www
(一行指令)

定時啟動備份…
nano /etc/crontab
-------------------------------------------
0 2 * * * root /usr/bin/rsync -arHz --progress --delete --password-file=/etc/rsyncd.passwd /home/ backup_admin@xxx.xxx.xxx.xxx::backup_home
0 4 * * * root /usr/bin/rsync -arHz --progress --delete --password-file=/etc/rsyncd.passwd /var/www/ backup_admin@xxx.xxx.xxx.xxx::backup_www
-------------------------------------------
(二行設置)
=======================================

參考來源…
http://www.howtoforge.com/mirroring_with_rsync
http://linux.tnc.edu.tw/techdoc/rsync.htm
http://fanqiang.chinaunix.net/a6/b7/20010908/1305001258_b.html
http://moto.debian.org.tw/viewtopic.php?t=6757
http://b2ddoc.tnc.edu.tw/yh/LinuxBase/m6_server_setup.html#mozTocId848674

2008年5月16日 星期五

Spamassassin 黑名單、白名單

手動=========================================
nano /etc/mail/spamassassin/local.cf

# whitelist:
whitelist_from d.cary@sparkingwire.com
whitelist_from *@sparkingwire.com

# blacklist:
blacklist_from d.cary@sparkingwire.com
blacklist_from *@sparkingwire.com

自動=========================================
#useradd -M black
#useradd -M white

以後如果收到垃圾信的話, 就把信 "以附加檔案方式轉寄" 給自己 Server 上的 black 信箱; 如果是被 Spamassassin 誤判為垃圾信的郵件, 就把它轉寄給 white. 也就是說, 讓這兩個信箱收集可以給 Spamassassin 學習的範本.

學習的指令如下:
學習黑名單:
#sa-learn -D --showdots --spam --mbox /var/mail/black

學習白名單:
#sa-learn -D --showdots --ham --mbox /var/mail/white
學習完成後, 即可將 black 與 white 信箱清空:
#true > /var/mail/black; true > /var/mail/white

讓系統每小時自動學習黑/白名單:
於 /etc/cron.hourly 建立一個可執行的 shell 檔, 內容為:
#!/bin/sh
if [ -s /var/spool/mail/black ]; then
sa-learn --spam --mbox /var/spool/mail/black > /dev/null
2>&1
true > /var/spool/mail/black
fi

if [ -s /var/spool/mail/white ]; then
sa-learn --ham --mbox /var/spool/mail/white > /dev/null
2>&1
true > /var/spool/mail/white
fi

2008年5月15日 星期四

Clamav Spamassassin更新升級

更新 Clamav:
nano /etc/apt/sources.list
增修
deb http://volatile.debian.org/debian-volatile etch/volatile main contrib non-free

apt-get update
apt-get upgrade
freshclam

安裝 Spamassassin:
參考…
http://www.debian.org.tw/index.php/SpamAssassin
http://www.debuntu.org/postfix-and-pamassassin-how-to-filter-spam

apt-get install spamassassin spamc
groupadd -g 5001 spamd
useradd -u 5001 -g spamd -s /sbin/nologin -d /var/lib/spamassassin spamd mkdir /var/lib/spamassassin
chown spamd:spamd /var/lib/spamassassin
nano /etc/default/spamassassin
增修
ENABLED=1
SAHOME="/var/lib/spamassassin/" OPTIONS="--create-prefs --max-children 5 --username spamd --helper-home-dir ${S$PIDFILE="${SAHOME}spamd.pid"

nano /etc/spamassassin/local.cf
作適當的修改設定

/etc/init.d/spamassassin restart

nano /etc/postfix/master.cf

smtp inet n - - - - smtpd
改為
smtp inet n - n - - smtpd -o content_filter$=spamassassin
若原本是在 chroot 模式則要記得保留,否則smtp驗證會失敗。
最後加上
spamassassin unix - n n - - pipe user=spamd argv=/usr/bin/spamc -f -e /usr/sbin/sendmail -oi -f ${sender} ${recipient}

/etc/init.d/postfix reload

2008年5月14日 星期三

架站學習之路

這兩天終於把公司DNS搞定~
硬碟掛掉真慘…
包括…


很累人,不過也學了不少。(http://rs.twnic.net.tw/cgi-bin/dns.cgi)

看到零錯誤真是蠻感動的~


首頁也蠻有個樣子~將來要幫代客架站都沒問題了吧? 整站全包~

Debian 安裝筆記

Debian4 安裝

OpenSSH-Server
apt-get install openssh-server

POSTFIX
mail sever

BIND9
dns server

MYSQL
apt-get --purge remove mysql-common mysql-server mysql-client
apt-get install mysql-common mysql-server mysql-client

APACHE+PHP
apt-get --purge remove apache2 php5 libapache2-mod-php5
apt-get install apache2 php5 libapache2-mod-php5 php5-gd php5-mysql

apache 預設語言問題
/etc/apache2# nano httpd.conf
-------------------------------------------------------------------------------
AddDefaultCharset Big5
LanguagePriority tw en da nl et fr de el it ja kr no pl pt pt-br ltz ca es sv
-------------------------------------------------------------------------------

PHPMYADMIN
apt-get --purge remove phpmyadmin
apt-get install phpmyadmin

PHPMYADMIN big5亂碼問題
/usr/share/phpmyadmin/libraries# nano select_lang.lib.php
-------------------------------------------------------------------------------
'big5' => 'big5', 更改 'big5' => 'latin1',
'utf-8' => 'utf-8', 更改 'utf-8' => ' latin1',
-------------------------------------------------------------------------------

Joomla

VirtualBox 空間減肥

@windows vm sdelete64 -z c: @macos VBoxManage  modifymedium  disk  "/Users/fellow/VirtualBox VMs/Win10/Win10.vdi"  --compact *.vdi...