Chinaunix

标题: centos下读取数据库邮件列表然后发送邮件的脚本 [打印本页]

作者: zhangyihn2008    时间: 2012-03-31 11:50
标题: centos下读取数据库邮件列表然后发送邮件的脚本
数据库和邮件服务器都已经装好了,现在有一个数据库db,里面有两个表,一个是mail,里面是邮件列表,另外一个是content,是准备发送邮件 的内容,现在想做一个脚本,运行这个脚本 的时候读取mail表里面的邮件列表,然后把content的内容发送到每一个邮箱里面,邮件列表大概有8万多条记录。哪位大牛给个代码的范例,谢谢了
作者: Shell_HAT    时间: 2012-03-31 11:53
MySQL还是Oracle?
作者: zhangyihn2008    时间: 2012-03-31 13:16
mysql
作者: Shell_HAT    时间: 2012-03-31 19:40
回复 3# zhangyihn2008
  1. mysql -uUSERNAME -pPASSWORD DATABASE -e "select * from mail" >mail.txt
复制代码
  1. mysql -uUSERNAME -pPASSWORD DATABASE -e "select * from content" >content.txt
复制代码
结果传上来看看

作者: 喵星人Nginx    时间: 2012-07-18 18:35
回复 4# Shell_HAT


    我现在也在做这个..能麻烦帮帮忙吗..
作者: Shell_HAT    时间: 2012-07-20 08:19
回复 5# 喵星人Nginx


    可以。你提供数据就行了。
作者: 喵星人Nginx    时间: 2012-07-20 10:12
回复 6# Shell_HAT


    呃..本来要两周内交的.结果昨天半个小时就写好了.~看了你mysql的命令给了很大的启发啊.~有木有联系方式~以后方便探讨..
作者: Shell_HAT    时间: 2012-07-20 17:07
回复 7# 喵星人Nginx


    直接在论坛@我就行了,很少上QQ什么的。
作者: 喵星人Nginx    时间: 2012-07-23 13:06
回复 8# Shell_HAT


    呃..邮箱什么的有木有~
作者: 喵星人Nginx    时间: 2012-07-25 17:45
回复 8# Shell_HAT


    那个自动发送右键的脚本是解决了.不过有新要求啊.能不能讨论讨论..遇到思维瓶颈了..


   现在的要求是有个脚本定期检查进程,如果进程缺失会运行一个启动脚本对所有的进程进行启动.启动后会将信息导入到一个文件core中,然后将core中的内容导入到mysql的autoproc.CORE表中.

   现在这个自动发送邮件的脚本的要求就是把CORE中的内容导出来发送给对应的人.现在导出这个能做到.
   
   要求每隔一段时间运行该脚本,获取core中的信息,发送给对应的人.而且内容必须不包含之前发送过的内容.

   我现在做到的就是每次生成一个core的邮件内容..当然这里的内容我是用select * from autoproc.CORE 然后文件内容的命名是core$(date +%Y%m%d%H%M)的格式.对比文件的内容是用comm -3 file1 file2 来找出1 2文件中不重复的内容.现在的问题就是我怎么做判断.怎么用对先生成的文件和后生成的文件做对比.然后用comm语句导出不重复的语句发送.


    e.g.: comm -3 core201207251530 core201207261533 怎么去让他自己去判断这个文件.不用这个命名也可以的.或者说有好点的方法.也可以..

拜托了..


   
作者: 喵星人Nginx    时间: 2012-07-25 17:48
回复 8# Shell_HAT


    我的邮箱是yinhao901@gmail.com
作者: Shell_HAT    时间: 2012-07-25 18:42
回复 10# 喵星人Nginx


    给点真实数据描述一下你想怎样比较两个文件
作者: 喵星人Nginx    时间: 2012-07-25 19:08
回复 12# Shell_HAT


    ID    CORE     GAMETYPE GAMENAME   ZONE           IP                    TIME
     1     core.1         XXXX       XXXXX    ZR19   192.168.1.1     2012-07-18 15:00:00
比如数据库是这样的一张表.然后数据库导出到文件生成一个core201207251905的文件文件内容是
     1     core.1         XXXX       XXXXX    ZR19   192.168.1.1     2012-07-18 15:00:00

每次进程丢失重启后都会重新写入这个core文件.core再写入数据库的这张表里

e.g.:   
     ID    CORE     GAMETYPE GAMENAME   ZONE           IP                    TIME
     1     core.1         XXXX       XXXXX      ZR19   192.168.1.1     2012-07-18 15:00:00
     2     core.2         YYYY        YYYYY       SR25   192.168.1.3     2012-07-25 17:00:00

自动运行脚本后生成core201207251906,内容是
    1     core.1         XXXX       XXXXX      ZR19   192.168.1.1     2012-07-18 15:00:00
     2     core.2         YYYY        YYYYY       SR25   192.168.1.3     2012-07-25 17:00:00


然后 第一个文件和第二个文件对比 就会出来
     2     core.2         YYYY        YYYYY       SR25   192.168.1.3     2012-07-25 17:00:00
然后将这句导入到一个文件.然后发送该内容为邮件内容.


其中对比语句我用的是comm -3 core201207251905 core201207251906

现在需要让脚本自己去判断这个comm -3 后面的$1 $2
作者: Shell_HAT    时间: 2012-07-26 08:07
回复 13# 喵星人Nginx


ls -1
倒数第二个就是$1
最后一个就是$2
作者: 喵星人Nginx    时间: 2012-07-26 12:13
回复 14# Shell_HAT


    这个...ls -1是个什么意思....
作者: 喵星人Nginx    时间: 2012-07-26 12:23
回复 14# Shell_HAT


    哦..我明白了一行只输出一个文件..

    然后这个出来以后是怎么交给comm呢?用管道符吗?我现在用了管道符没有用啊..给我的是too few argument...
作者: Shell_HAT    时间: 2012-07-26 18:10
回复 16# 喵星人Nginx


    代码贴出来看看
作者: 喵星人Nginx    时间: 2012-07-28 21:42
回复 17# Shell_HAT


    ..自己解决了..换了另一种方法..comm -3 `ls -ct |head -n2`然后就行了.




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2