Mailman Tips 2
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
*Mailman Tips 2 [#bf7ef92e]
[[Mailman on FreeBSD]]~
[[Mailman Tips]]~
[[Mailman Tips 2]]~
[[Mailman Tips 3]]~
[[Mailman Tips 4]]~
#contents
**リストのメールアドレスを取り出す [#aa6b7009]
Mailman の list_name というメーリングリストのメールアドレ...
/usr/local/mailman/lists/list_name に保存されているが、Ma...
外部アプリでユーザ認証を行う際にはそのままでは難しいので...
/usr/local/mailman/bin/list_members list_name > /usr/loc...
とするとlist_memberという一行一アドレスのファイルが出来る。
自動生成するには、たとえば、/root/bin/mailman_mailaddress...
#!/bin/sh
/usr/local/mailman/bin/list_members list_name > /usr/loc...
とし、実行権を与えて、/etc/crontab に、
55 2 * * * root /root/bin/mailman_mailaddress2text.sh
と記述しておけば、毎日2時55分に自動更新する
**「通し番号」の自動更新?? [#v062918a]
【2010_10_30】
guard# cat /usr/local/mailman/bin/set_post_id.py
import time
def set_post_id(m):
today = time.strftime('%y%m%d', time.localtime())
m.post_id = float(int(today, 10) * 1000) + 1
m.Save()
guard#
【Q】
通し番号を、毎日0時に[list_name:071212000]という様式にし...
し番号3桁)のですが、どのような方法がお勧めでしょうか。
【A】
bin/withlist はそれ用に作られたスクリプトを呼び出して実...
うなスクリプトを bin ディレクトリに作成しておいて、cron ...
$ cat bin/set_post_id.py
import time
def set_post_id(m):
today = time.strftime('%y%m%d', time.localtime())
m.post_id = float(int(today, 10) * 1000)
m.Save()
cron で実行するコマンドは次のようになります。
<prefix>/bin/withlist -l -r set_post_id <listname>
subject_prefix の方は、
[listname:%09d]
補足説明
% python
Python 2.4.4 (#2, May 1 2007, 08:45:15)
[GCC 3.4.6 [FreeBSD] 20060305] on freebsd6
Type "help", "copyright", "credits" or "license" for mor...
>>> import time
>>> time.localtime()
(2007, 12, 13, 13, 47, 15, 3, 347, 0)
>>> time.strftime('%y%m%d', time.localtime())
'071213'
>>> int(time.strftime('%y%m%d', time.localtime()), 10)
71213
>>> int(time.strftime('%y%m%d', time.localtime()), 10) *...
71213000
>>> float(int(time.strftime('%y%m%d', time.localtime()),...
71213000.0
>>>
// 【結果】
// % /usr/local/bin/python2.4 -S /usr/local/mailman/bin/w...
// Importing set_post_id...
// Running set_post_id.py()...
// Traceback (most recent call last):
// File "/usr/local/mailman/bin/withlist", line 297, in ?
// main()
// File "/usr/local/mailman/bin/withlist", line 269, in...
// func = getattr(mod, callable)
// AttributeError: 'module' object has no attribute 'py'
//
// これは、コマンドラインに、set_post_id.py と、「.py」が...
// 正しくは、↓
【結果】
% /usr/local/bin/python2.4 -S /usr/local/mailman/bin/wit...
Importing set_post_id...
Running set_post_id.set_post_id()...
Loading list test (locked)
Unlocking (but not saving) list: test
Finalizing
で、テストすると、
[Test:071212000] 【通し番号のテスト】
[Test:071212001] Re: 【通し番号のテスト】
[Test:071212002] Re: 【通し番号のテスト】
という具合になりました。:-)
毎日自動更新するように、
vi /usr/local/mailman/cron/crontab-sp.in
01 0 * * * /usr/local/bin/python -S /usr/local/mailman/b...
#01 0 * * * /usr/local/bin/python -S /usr/local/mailman/...
#01 0 * * * /usr/local/bin/python2.4 -S /usr/local/mailm...
#01 0 * * * /usr/local/bin/python2.4 -S /usr/local/mailm...
と書き加えて
crontab -u mailman /usr/local/mailman/cron/crontab-sp.in...
して、/var/cron/tabs/mailman に変更を反映させる。
cat /var/cron/tabs/mailman
# DO NOT EDIT THIS FILE - edit the master and reinstall.
# (/usr/local/mailman/cron/crontab-sp.in installed on We...
# (Cron version -- $FreeBSD: src/usr.sbin/cron/crontab/c...
: : :
: : :
# At 3:27am every night, regenerate the gzip'd archive f...
# turn this on if the internal archiver is used and
# GZIP_ARCHIVE_TXT_FILES is false in mm_cfg.py
27 3 * * * /usr/local/bin/python2.4 -S /usr/local/mailma...
01 0 * * * /usr/local/bin/python2.4 -S /usr/local/mailma...
#01 0 * * * /usr/local/bin/python2.4 -S /usr/local/mailm...
***移行作業履歴 [#icd39083]
980 12:43 cd /usr/local/mailman
985 13:46 mv archives archives_dist
986 13:47 mv data data_dist
987 13:47 mv lists lists_dist
988 13:47 mv logs logs_dist
989 13:48 cp -rp /usr/Backups/Guard/usr/local/mailm...
990 13:49 ll
991 13:50 cp -rp /usr/Backups/Guard/usr/local/mailm...
992 13:50 cp -rp /usr/Backups/Guard/usr/local/mailm...
993 13:50 cp -rp /usr/Backups/Guard/usr/local/mailm...
994 13:50 ll
995 13:55 ps aux | grep mailman
996 13:55 /usr/local/etc/rc.d/mailman restart
997 13:56 /usr/local/etc/rc.d/mailman q
998 13:56 /usr/local/etc/rc.d/mailman restart
999 13:57 reboot
1000 13:57 bsd-update fetch
1001 14:28 cd /usr/local/mailman
1002 14:28 bin/withlist -l -r fix_url test tfc2.thou...
1003 14:29 /usr/local/etc/rc.d/mailman restart
1004 14:34 bin/withlist -l -r fix_url test tfc2.thou...
1005 14:52 /usr/local/mailman/bin/check_perms -f
1006 14:53 /usr/local/mailman/bin/check_perms -f
1007 14:53 bin/withlist -l -r fix_url test tfc2.thou...
1008 14:54 /usr/local/etc/rc.d/mailman restart
1009 14:54 /usr/local/mailman/bin/check_perms -f
1013 15:24 cp -rp /usr/Backups/Guard/root/bin/ /root...
1014 15:36 cp /usr/Backups/Guard/usr/local/mailman/b...
1015 15:43 cp /usr/Backups/Guard/usr/local/mailman/c...
1016 15:46 crontab -u mailman /usr/local/mailman/cro...
1017 15:49 history
----
#counter([total|today|yesterday]);
終了行:
*Mailman Tips 2 [#bf7ef92e]
[[Mailman on FreeBSD]]~
[[Mailman Tips]]~
[[Mailman Tips 2]]~
[[Mailman Tips 3]]~
[[Mailman Tips 4]]~
#contents
**リストのメールアドレスを取り出す [#aa6b7009]
Mailman の list_name というメーリングリストのメールアドレ...
/usr/local/mailman/lists/list_name に保存されているが、Ma...
外部アプリでユーザ認証を行う際にはそのままでは難しいので...
/usr/local/mailman/bin/list_members list_name > /usr/loc...
とするとlist_memberという一行一アドレスのファイルが出来る。
自動生成するには、たとえば、/root/bin/mailman_mailaddress...
#!/bin/sh
/usr/local/mailman/bin/list_members list_name > /usr/loc...
とし、実行権を与えて、/etc/crontab に、
55 2 * * * root /root/bin/mailman_mailaddress2text.sh
と記述しておけば、毎日2時55分に自動更新する
**「通し番号」の自動更新?? [#v062918a]
【2010_10_30】
guard# cat /usr/local/mailman/bin/set_post_id.py
import time
def set_post_id(m):
today = time.strftime('%y%m%d', time.localtime())
m.post_id = float(int(today, 10) * 1000) + 1
m.Save()
guard#
【Q】
通し番号を、毎日0時に[list_name:071212000]という様式にし...
し番号3桁)のですが、どのような方法がお勧めでしょうか。
【A】
bin/withlist はそれ用に作られたスクリプトを呼び出して実...
うなスクリプトを bin ディレクトリに作成しておいて、cron ...
$ cat bin/set_post_id.py
import time
def set_post_id(m):
today = time.strftime('%y%m%d', time.localtime())
m.post_id = float(int(today, 10) * 1000)
m.Save()
cron で実行するコマンドは次のようになります。
<prefix>/bin/withlist -l -r set_post_id <listname>
subject_prefix の方は、
[listname:%09d]
補足説明
% python
Python 2.4.4 (#2, May 1 2007, 08:45:15)
[GCC 3.4.6 [FreeBSD] 20060305] on freebsd6
Type "help", "copyright", "credits" or "license" for mor...
>>> import time
>>> time.localtime()
(2007, 12, 13, 13, 47, 15, 3, 347, 0)
>>> time.strftime('%y%m%d', time.localtime())
'071213'
>>> int(time.strftime('%y%m%d', time.localtime()), 10)
71213
>>> int(time.strftime('%y%m%d', time.localtime()), 10) *...
71213000
>>> float(int(time.strftime('%y%m%d', time.localtime()),...
71213000.0
>>>
// 【結果】
// % /usr/local/bin/python2.4 -S /usr/local/mailman/bin/w...
// Importing set_post_id...
// Running set_post_id.py()...
// Traceback (most recent call last):
// File "/usr/local/mailman/bin/withlist", line 297, in ?
// main()
// File "/usr/local/mailman/bin/withlist", line 269, in...
// func = getattr(mod, callable)
// AttributeError: 'module' object has no attribute 'py'
//
// これは、コマンドラインに、set_post_id.py と、「.py」が...
// 正しくは、↓
【結果】
% /usr/local/bin/python2.4 -S /usr/local/mailman/bin/wit...
Importing set_post_id...
Running set_post_id.set_post_id()...
Loading list test (locked)
Unlocking (but not saving) list: test
Finalizing
で、テストすると、
[Test:071212000] 【通し番号のテスト】
[Test:071212001] Re: 【通し番号のテスト】
[Test:071212002] Re: 【通し番号のテスト】
という具合になりました。:-)
毎日自動更新するように、
vi /usr/local/mailman/cron/crontab-sp.in
01 0 * * * /usr/local/bin/python -S /usr/local/mailman/b...
#01 0 * * * /usr/local/bin/python -S /usr/local/mailman/...
#01 0 * * * /usr/local/bin/python2.4 -S /usr/local/mailm...
#01 0 * * * /usr/local/bin/python2.4 -S /usr/local/mailm...
と書き加えて
crontab -u mailman /usr/local/mailman/cron/crontab-sp.in...
して、/var/cron/tabs/mailman に変更を反映させる。
cat /var/cron/tabs/mailman
# DO NOT EDIT THIS FILE - edit the master and reinstall.
# (/usr/local/mailman/cron/crontab-sp.in installed on We...
# (Cron version -- $FreeBSD: src/usr.sbin/cron/crontab/c...
: : :
: : :
# At 3:27am every night, regenerate the gzip'd archive f...
# turn this on if the internal archiver is used and
# GZIP_ARCHIVE_TXT_FILES is false in mm_cfg.py
27 3 * * * /usr/local/bin/python2.4 -S /usr/local/mailma...
01 0 * * * /usr/local/bin/python2.4 -S /usr/local/mailma...
#01 0 * * * /usr/local/bin/python2.4 -S /usr/local/mailm...
***移行作業履歴 [#icd39083]
980 12:43 cd /usr/local/mailman
985 13:46 mv archives archives_dist
986 13:47 mv data data_dist
987 13:47 mv lists lists_dist
988 13:47 mv logs logs_dist
989 13:48 cp -rp /usr/Backups/Guard/usr/local/mailm...
990 13:49 ll
991 13:50 cp -rp /usr/Backups/Guard/usr/local/mailm...
992 13:50 cp -rp /usr/Backups/Guard/usr/local/mailm...
993 13:50 cp -rp /usr/Backups/Guard/usr/local/mailm...
994 13:50 ll
995 13:55 ps aux | grep mailman
996 13:55 /usr/local/etc/rc.d/mailman restart
997 13:56 /usr/local/etc/rc.d/mailman q
998 13:56 /usr/local/etc/rc.d/mailman restart
999 13:57 reboot
1000 13:57 bsd-update fetch
1001 14:28 cd /usr/local/mailman
1002 14:28 bin/withlist -l -r fix_url test tfc2.thou...
1003 14:29 /usr/local/etc/rc.d/mailman restart
1004 14:34 bin/withlist -l -r fix_url test tfc2.thou...
1005 14:52 /usr/local/mailman/bin/check_perms -f
1006 14:53 /usr/local/mailman/bin/check_perms -f
1007 14:53 bin/withlist -l -r fix_url test tfc2.thou...
1008 14:54 /usr/local/etc/rc.d/mailman restart
1009 14:54 /usr/local/mailman/bin/check_perms -f
1013 15:24 cp -rp /usr/Backups/Guard/root/bin/ /root...
1014 15:36 cp /usr/Backups/Guard/usr/local/mailman/b...
1015 15:43 cp /usr/Backups/Guard/usr/local/mailman/c...
1016 15:46 crontab -u mailman /usr/local/mailman/cro...
1017 15:49 history
----
#counter([total|today|yesterday]);
ページ名: