Sourceforgeは現在cronサービスを受け付けていない。
そこで、nightlyアーカイブなどプロジェクトページを毎日更新するには、リモートホストで更新するなりして、これをsourceforgeへアップロードする方法がよい。
第一の方法は、rsyncでeオプションを使いリモートshellのsshを利用することだ。これなら既に公開鍵を登録してあればパスワード認証を回避できる。
具体的には、リモートのcronジョブに次のように登録する。
rsync -avP -e "ssh -i /home/foo/.ssh/[sf.netに登録した秘密鍵]" [archive file] [account],[project]@frs.sourceforge.net:/home/groups/f/fo/fooproject/htdocs
第2の方法はscpでiオプションを使う。
scp -i 鍵ファイル ファイル [account],[project]@web.sourceforge.net:htdocs
それにしても、sf.netのシステムがころころ変わるのがつらいところ。プロジェクトのwebスペースがいつのまにか
/home/groups/f/fo/fooproject/htdocs
から
/home/project-web/fooproject/htdocs
になってしまっている。
yum -y install mailman
vi /etc/mailman/mm_cfg.py下記の行だけ活かして残りはコメントアウトfrom Defaults import *最後に以下を追加MTA = 'Postfix' DEFAULT_SERVER_LANGUAGE = 'ja' DEFAULT_URL_PATTERN = 'https://%s/mailman/' DEFAULT_LIST_ADVERTISED = No OWNERS_CAN_DELETE_THEIR_OWN_LISTS = Yes DEFAULT_SUBJECT_PREFIX = "[%(real_name)s: %%d] " # reply-to DEFAULT_REPLY_GOES_TO_LIST = 1 DEFAULT_NEW_MEMBER_OPTIONS = 256 DEFAULT_GENERIC_NONMEMBER_ACTION = 2 DEFAULT_REQUIRE_EXPLICIT_DESTINATION = No DEFAULT_MSG_FOOTER = '' # don't send a monthly reminder DEFAULT_SEND_REMINDERS = No # don't send a welcom message to a newcomer DEFAULT_SEND_WELCOME_MSG = No # no limit of text body size DEFAULT_MAX_MESSAGE_SIZE = 0 # don't send a duplicated mail to subscribers DontReceiveDuplicates = 0 # keep arichives private? DEFAULT_ARCHIVE_PRIVATE = 1 # don't keep attached files DEFAULT_SCRUB_NONDIGEST = False # virtual host # SSLで動かすのでwebはdefaultドメインを使う DEFAULT_URL_HOST = 'www.deafult-domain.com' POSTFIX_STYLE_VIRTUAL_DOMAINS = ['default-domain.com','virtual-domain1.com','virtual-domain2.net','virtual-domain3.jp'] add_virtualhost(DEFAULT_URL_HOST,'default-domain.com') add_virtualhost(DEFAULT_URL_HOST,'virtual-domain1.com') add_virtualhost(DEFAULT_URL_HOST,'virtual-domain2.net') add_virtualhost(DEFAULT_URL_HOST,'virtual-domain3.jp')
/usr/lib/mailman/bin/mmsitepass password # サイト管理パスワード /usr/lib/mailman/bin/mmsitepass -c # メーリングリスト作成パスワードpassword
cp /usr/lib/mailman/cron/crontab.in /etc/cron.d/mailman
/usr/lib/mailman/bin/genaliases
/usr/lib/mailman/bin/newlist mailman@www.deafult-domain.com
/etc/httpd/conf.d/mailman.confの内容確認
/usr/lib/mailman/bin/newlist --urlhost=www.default-domain.com --emailhost=virtual-domain1.com listname@virtual-domain1.com email password添付ファイルを保管しない
クライアントの文字コードをEUC-JPに変更しておく。
/usr/lib/mailman/bin/withlist -l listnamelistname のリストを読み込中 (ロック完了) 変数 `m' が listname の MailList インスタンスです >>> m.scrub_nondigest=0 >>> m.Save() >>> ^D リストをロック解除 (保存はしてません): listname 最終処理中保管日数を指定する
/usr/lib/mailman/bin/withlist -l listnamelistname のリストを読み込中 (ロック完了) 変数 `m' が listname の MailList インスタンスです >>> m.max_days_to_hold=n >>> m.Save() >>> ^D リストをロック解除 (保存はしてません): listname 最終処理中通し番号を設定する
/usr/lib/mailman/bin/withlist -l listnamelistname のリストを読み込中 (ロック完了) 変数 `m' が listname の MailList インスタンスです >>> m.post_id=n >>> m.Save() >>> ^D リストをロック解除 (保存はしてません): listname 最終処理中
削除はコマンドで行う。
/usr/lib/mailman/bin/rmlist -a listname
例: user1.kuri3.net -> http://user1-host user2.kuri3.net -> http://user2-host . .
まずマップテキストを準備する。
/path/map.a2e-userabe http://abe-host
/path/map.f2j-userfujii http://fujii-host
/path/map.k2o-userkatoh http://katoh-host
httpd.conf設定は:
ServerName *.kuri3.net RewriteEngine on RewriteMap a2e-user txt:/www/ondagawa/map.a2e-user RewriteMap f2j-user txt:/www/ondagawa/map.f2j-user RewriteMap k2o-user txt:/www/ondagawa/map.k2o-user RewriteMap p2t-user txt:/www/ondagawa/map.p2t-user RewriteMap u2z-user txt:/www/ondagawa/map.u2z-user RewriteMap 129-user txt:/www/ondagawa/map.129-user RewriteCond %{HTTP_HOST} ^[a-e][^.]+\.kuri3.net\.net$ RewriteRule ^(.+) %{HTTP_HOST}$1 [C] RewriteRule ^([^.]+)\.kuri3\.net(.*) ${a2e-user:$1|default-host} [R,L] RewriteCond %{HTTP_HOST} ^[f-j][^.]+\.kuri3\.net$ RewriteRule ^(.+) %{HTTP_HOST}$1 [C] RewriteRule ^([^.]+)\.kuri3\.net(.*) ${f2j-user:$1|default-host} [R,L] RewriteCond %{HTTP_HOST} ^[k-o][^.]+\.kuri3.net\.net$ RewriteRule ^(.+) %{HTTP_HOST}$1 [C] RewriteRule ^([^.]+)\.kuri3\.net(.*) ${k2o-user:$1|default-host} [R,L] RewriteCond %{HTTP_HOST} ^[p-t][^.]+\.kuri3.net\.net$ RewriteRule ^(.+) %{HTTP_HOST}$1 [C] RewriteRule ^([^.]+)\.kuri3\.net(.*) ${p2t-user:$1|default-host} [R,L] RewriteCond %{HTTP_HOST} ^[u-z][^.]+\.kuri3.net\.net$ RewriteRule ^(.+) %{HTTP_HOST}$1 [C] RewriteRule ^([^.]+)\.kuri3\.net(.*) ${u2z-user:$1|default-host} [R,L] RewriteCond %{HTTP_HOST} ^[1-9][^.]+\.kuri3.net\.net$ RewriteRule ^(.+) %{HTTP_HOST}$1 [C] RewriteRule ^([^.]+)\.kuri3\.net(.*) ${129-user:$1|default-host} [R,L]
CentOSのインストール後、まず次のことをやっておく。
内部文字コードはデフォルトのUTF8 ( Unicode ) のままで問題ないが、SSHクライアントがどうしてもEUC-JPでなくてはいけないような場合、
cp /etc/sysconfig/i18n /etc/sysconfig/i18n.original vi /etc/sysconfig/i18n# LANG="en_US.UTF-8" を変更LANG="ja_JP.UTF-8"
useradd hodaka passwd hodaka usermod -G wheel hodaka vi /etc/pam.d/su#auth required pam_wheel.so use_uid auth required pam_wheel.so use_uid
reboot
hodakaでログイン
ユーザーhodakaの公開鍵セット
mkdir .ssh chmod 700 .ssh touch .ssh/authorized_keys chmod 600 .ssh/authorized_keys vi .ssh/authorized_keys # hodakaの公開鍵入力
vi /etc/ssh/sshd_configservice sshd restartPermitRootLogin no # または PermitRootLogin forced-commands-only PasswordAuthentication no
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
yum install xinetd
tcpラッパー
vi /etc/hosts.allowservice xinetd start chkconfig xinetd onAll : 127.0.0.1 sshd : 192.168.0.0/255.255.255.0
vi /etc/logrotate.conf#weekly daily#rotate 4 rotate 30#compress compress
yum install ntp vi /etc/ntp.conf#server 0.pool.ntp.org #server 1.pool.ntp.org #server 2.pool.ntp.org server タイムサーバーのホスト名またはIPアドレス# 時刻合わせ ntpdate -s -b タイムサーバーのホスト名またはIPアドレス # BIOSにシステム時刻を書き込み clock -w # 確認 clock;date # cron登録 crontab -e0 0 * * * /usr/bin/ntpdate タイムサーバーの名前またはIPアドレス 2>&1 /dev/null 1 0 * * * /sbin/clock -w
TCP 20 : ftp-data TCP 21 : ftp TCP 53 : dns TCP 80 : 80 TCP 110 : pop3 TCP 143 : imap TCP 443 : https TCP 465 : smtps TCP 993 : imaps TCP 995 : pop3s UDP 53 : dns UDP 123 : ntp UDP 161 : snmpvi /etc/sysconfig/iptables-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 53 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 110 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 143 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 465 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 993 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 995 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 53 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m udp -s 192.168.0.0/24 -p udp --dport 123 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 161 -j ACCEPT
chkconfig apmd off chkconfig bluetooth off chkconfig cpuspeed off chkconfig cups off chkconfig httpd on chkconfig isdn off chkconfig mysqld on chkconfig netfs off chkconfig nfslock off chkconfig ntpd on chkconfig pcmcia off chkconfig portmap off chkconfig rpcgssd off chkconfig rpcidmapd off chkconfig saslauthd off chkconfig sendmail off# 次の二つはFedoraのみ, CentOSは不要 chkconfig mDNSResponder off chkconfig nifd off
# 最適ミラーサイトを自動選択する
yum install centos-yum yum-plugin-fastestmirrorvi /etc/yum.confplugins=1
vi /etc/sysconfig/selinuxSELINUX=disabled
RAID確認cat /proc/mdstat追加ディスク確認cat /var/log/dmesg | grep hdcパーティションfdisk /dev/hdcRAID追加mdadm --manage /dev/md0 --add /dev/hdc1 mdadm --manage /dev/md1 --add /dev/hdc2 mdadm --manage /dev/md2 --add /dev/hdc3/etc/mdadm.conf作成echo "DEVICE partitions" > /etc/mdadm.conf echo "MAILADDR root" >> /etc/mdadm.conf mdadm -D --scan >> /etc/mdadm.conf cat /etc/mdadm.confGRUBインストールcat /boot/grub/grub.conf # 現在のgrubインストール先確認grubdefault=0 timeout=5 splashimage=(hd1,2)/grub/splash.xpm.gz hiddenmenu title CentOS (2.6.32-71.el6.x86_64) root (hd1,2) kernel /vmlinuz-2.6.32-71.el6.x86_64 ro root=UUID=4f23a92d-e526-4439-9412-33dac2289549 rd_MD_UUID=adab7102:610619d6:64bc8ff0:48305e72 rd_MD_UUID=deaa02ff:d106b0ff:410b67d7:b4fb230f rd_NO_LUKS rd_NO_LVM rd_NO_DM LANG=ja_JP.UTF-8 KEYBOARDTYPE=pc KEYTABLE=jp106 crashkernel=auto rhgb quiet initrd /initramfs-2.6.32-71.el6.x86_64.imggrub> root (hd0,2) grub> setup (hd0) grub> root (hd1,2) grub> setup (hd1)
yum groupinstall 'Development Tools' yum groupinstall 'Development Libraries'
yum install httpd mysql-server php php-devel php-mysql php-mbstring php-pear php-pear-db php-gd php-common php-cli php-pdo php-imap gcc mysql-devel openssl-devel zlib-devel pcre-devel expect gamin-devel
TIP : Opteronのような64ビットマシンでは非64ビットライブラリとの競合を避けるため /etc/yum.conf に行を追加vi /etc/yum.conf# 64ビットマシンの場合 exclude=*.i386 *.i586 *.i686 |
アップデート
yum update
クロンで自動更新
crontab -e# 万一に備えて勤務時間中にしておこう。:-) # # カーネルの自動更新はしない # mysqlの自走更新もしない # # カーネルやmysqlの更新はあくまでマニュアルで 50 10 * * 1-5 /usr/bin/yum --exclude=kernel* --exclude=hal --exclude=mysql* -y update
カーネル更新を反映するためリブート
shutdown -r now