有這樣的備份軟體嗎?

第 1 頁,共 2 頁 1 2 末頁末頁
顯示結果從第 1 筆 到 10 筆,共計 18 筆
  1. #1
    我是嫩咖
    註冊日期
    2001-02-26
    所在地區
    FTTH 50M/5M 固定+50M/5M浮動 + MOD + KOD
    討論區文章
    7,619

    有這樣的備份軟體嗎?

    目前的檔案結構如下

    用戶資料夾
     |--A
      |-- 工作記錄
      |-- 工作報告
      |-- 其他
     |--B
      |-- 工作記錄
      |-- 工作報告
      |-- 其他
     |--C
      |-- 工作記錄
      |-- 工作報告
      |-- 其他

    其中工作報告的資料夾中每天都會產生一個檔案,目前希望的就是能夠把前一天的工作報告挑出來,然後透過「電子郵件」寄送到主管的信箱中!

    不知有沒有網友有好的做法或是有軟體可以做到?


    ∼一雙冷眼看人生;滿腔熱血酬知己∼

    P.S.你可以叫我「阿斌」或「Alan」,請不要叫我mis339,謝謝。

  2. #2
    會員
    註冊日期
    2005-11-27
    所在地區
    Seednet FTTB 60M/15M
    討論區文章
    2,610

    回覆: 有這樣的備份軟體嗎?

    我只會在linux base上面這樣搞 Orz
    或者是在Windows base上透過工作排程執行PHP程式去處理

  3. #3
    會員
    註冊日期
    2001-05-18
    討論區文章
    1,939

    回覆: 有這樣的備份軟體嗎?

    1.先把 smtp 的發信程式準備好
    隨便搜尋一下 C# Csharp 的 程式
    http://blog.sina.com.cn/s/blog_46175deb0100az4y.html

    mail.cs
    ================================================
    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Net;
    using System.Net.Mail;

    namespace TMail1
    {
    class MainProgram
    {
    static void Main(string[] args)
    {
    // 建立MailMessage類實例
    MailMessage mail = new MailMessage();
    // 收件者
    mail.To.Add(new MailAddress("[email protected]"));
    // 發件者
    mail.From = new MailAddress("[email protected]");
    // 郵件主題
    mail.Subject = "test";
    // 郵件內容
    mail.Body = "test!";
    // 附加檔案 ps:我自己(bx2aa)加上附檔
    mail.Attachments.Add(new System.Net.Mail.Attachment("test.rar"));
    // 建立SmtpClient類實例
    SmtpClient mailer = new SmtpClient();
    // 設定Smtp主機
    mailer.Host = "smtp.pczone.com.tw";
    mailer.Port = 25;
    // 設定 SMTP 伺服器 帳號/密碼, 發件者 E-mail, 密碼
    mailer.Credentials = new NetworkCredential("account","password");
    try
    {
    // 發信
    mailer.Send(mail);
    System.Console.WriteLine("發送成功!");
    }
    catch (Exception ex)
    {
    System.Console.WriteLine(ex.ToString());
    }
    }
    }
    }
    ================================================
    請自行查詢 Framework 版本修改 紅字部份
    csc 在 C:\WINDOWS\Microsoft.NET\Framework\v???\
    C:\WINDOWS\Microsoft.NET\Framework\v???\csc mail.cs
    產成 mail.exe
    直接執行 mail 就送出去.

    好開始整理出檔案.

    2.整理出全部檔案名稱:
    ps:需要 UnixUtils 且 PATH 指到 UnixUtils 目錄
    list.txt 內容為目錄名稱
    ======================
    用戶資料夾\A\工作報告\
    用戶資料夾\B\工作報告\
    用戶資料夾\C\工作報告\
    用戶資料夾\D\工作報告\
    ======================

    for /F %i in (list.txt) do echo copy %i>> file.txt && dir %i | sort | grep -v "<DIR>" | grep -v " \.\." | grep -v " \." | tail -n1 | cut -c 41- >> file.txt && echo. >>file.txt
    ps:把前一天的檔案當成是"日期最新"的檔案, 所以用 sort 排序抓最後一行

    把 file.txt 整理一下為 copy pathfilename
    sed -e :a -e "$!N;s/ \n \(.*\)/\1 /;ta" -e "P;D" file.txt > sendfile.txt
    把 檔案 copy 到 c:\temp
    複製到 c:\temp
    for /F "tokens=1,* delims= " %i in (sendfile.txt) do %i %j c:\temp

    3.把 c:\temp\ 裏的檔案壓縮起來
    "C:\Program Files\WinRAR\winrar.exe" a test c:\temp\*.*

    執行 mail.exe 就發出去了.

    以上花了三四個小時, 確實能正常執行.
    PS: 要放到批次檔裡 %那些 %i 要變為 %%i %%j



    如果報告名稱固定的話就直接寫死
    report.bat
    cop c:\用戶資料夾\A\工作報告\report.doc c:\temp\張三.doc
    cop c:\用戶資料夾\B\工作報告\report.doc c:\temp\李四.doc
    cop c:\用戶資料夾\C\工作報告\report.doc c:\temp\王五.doc
    "C:\Program Files\WinRAR\winrar.exe" a test c:\temp\*.*
    mail.exe
    ps:注意防毒軟體有沒有把 port :25 檔住
    有的話會出現

    System.Net.Mail.SmtpException: 傳送郵件失敗。 ---> System.Net.WebException: 無法連接至遠端伺服器 ---
    > System.Net.Sockets.SocketException: 連線已被您主機上的軟體中止。 ???.???.???.???:25
    於 System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress)
    於 System.Net.Sockets.Socket.InternalConnect(EndPoint remoteEP)
    於 System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, So
    cket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Int32 timeout,
    Exception& exception)
    --- 內部例外狀況堆疊追蹤的結尾 ---
    於 System.Net.ServicePoint.GetConnection(PooledStream PooledStream, Object owner, Boolean async,
    IPAddress& address, Socket& abortSocket, Socket& abortSocket6, Int32 timeout)
    於 System.Net.PooledStream.Activate(Object owningObject, Boolean async, Int32 timeout, GeneralAsy
    ncDelegate asyncCallback)
    於 System.Net.PooledStream.Activate(Object owningObject, GeneralAsyncDelegate asyncCallback)
    於 System.Net.ConnectionPool.GetConnection(Object owningObject, GeneralAsyncDelegate asyncCallbac
    k, Int32 creationTimeout)
    於 System.Net.Mail.SmtpConnection.GetConnection(String host, Int32 port)
    於 System.Net.Mail.SmtpTransport.GetConnection(String host, Int32 port)
    於 System.Net.Mail.SmtpClient.GetConnection()
    於 System.Net.Mail.SmtpClient.Send(MailMessage message)
    --- 內部例外狀況堆疊追蹤的結尾 ---
    於 System.Net.Mail.SmtpClient.Send(MailMessage message)
    於 TMail1.MainProgram.Main(String[] args)
    此文章於 2010-03-30 03:42 PM 被 bx2aa 編輯。

  4. #4
    會員
    註冊日期
    2005-11-27
    所在地區
    Seednet FTTB 60M/15M
    討論區文章
    2,610

    回覆: 有這樣的備份軟體嗎?

    好強 Orz

    我完全沒想過,可以利用Windows內的.Net framework編譯個執行檔出來搞定...
    再加上批次檔...:Q

  5. #5
    我是嫩咖
    註冊日期
    2001-02-26
    所在地區
    FTTH 50M/5M 固定+50M/5M浮動 + MOD + KOD
    討論區文章
    7,619

    回覆: 有這樣的備份軟體嗎?

    嗯,我……傻眼了……
    這……要從何做法……我想想……


    ∼一雙冷眼看人生;滿腔熱血酬知己∼

    P.S.你可以叫我「阿斌」或「Alan」,請不要叫我mis339,謝謝。

  6. #6
    會員
    註冊日期
    2005-03-25
    討論區文章
    450

    回覆: 有這樣的備份軟體嗎?

    太強大了!!!
    我前幾天看到這個主題才在想說似乎沒有合適的工具

    沒想到...XD

  7. #7
    會員
    註冊日期
    2001-05-18
    討論區文章
    1,939

    回覆: 有這樣的備份軟體嗎?

    剛剛想到幾個作法!

    例如:
    也可以請所有人把檔案複製到特定目錄裏, 然後用批次檔檢查有沒有誰沒交!
    :start
    if not exist \\zs\work\report.xls zs.exe && msgzs.exe
    if not exist \\ls\work\report.xls ls.exe && msgls.exe
    if not exist \\ww\work\report.xls ww.exe && msgww.exe
    sleep 300
    if exist \\zs\work\report.xls if exist \\ls\work\report.xls if exist \\ww\work\report.xls && package.bat && mail.exe && exit
    goto start

    zs.exe ls.exe ww.exe 分別為催交的 E-Mail
    package.bat 為把
    \\zs\work\report.xls
    \\ls\work\report.xls
    \\ww\work\report.xls
    打包為 .rar
    在用 mail.exe 寄出去

    另一種方法:只是想框架沒寫出程式


    msg??.exe 為跳出一個視窗提示.
    =====================================
    /*
    * Created by SharpDevelop.
    * User: bx2aa
    * Date: 2010/3/31
    * Time: 下午 01:10
    *
    * To change this template use Tools | Options | Coding | Edit Standard Headers.
    */
    using System;
    using System.Windows.Forms;

    class Hello
    {
    static void Main()
    {
    MessageBox.Show("張三報告未繳交!");
    }
    }
    ======================================

    我們這邊出現 某某某報告未繳交提示視窗 當然 user 那邊除了 E-Mail 也讓他有點實質的狀況
    用 telnet 到 User 端執行 user 端 c:\temp\schdtime.bat

    先開用戶端的 telnet 服務為 手動 已啟動
    sc \\zs config tlntsvr start= demand
    sc \\zs start tlntsvr

    user 端 c:\temp\schdtime.bat 的內容
    @echo off
    echo %time:~0,5% | gawk -F: "{print $1\":\"$2+1}" > time.txt
    for /F %i in (time.txt) do set schdtime=%i
    at %schdtime% /interactive "c:\temp\msgzs.exe"

    在自己這邊用 perl 去執行, 或是用 net send 可以省掉用 telnet 的麻煩!

    perl telnet.pl

    #! c:\perl\bin\perl.exe -w
    use Net::Telnet ();
    $username="account";
    $passwd="password";
    $port=23;
    $secs=10;
    $|=1;
    $t = new Net::Telnet (Host => $ARGV[0],Port => $port,Timeout => $secs);
    $lines = $t->getline;
    $lines = $t->getline;
    print $lines."\n";
    print $lines = $t->print("$username");
    print $t->getline;
    $lines = $t->print("$passwd");
    print $t->getline;
    print $t->getline;
    print $t->getline;
    print $t->getline;
    print $t->getline;
    $lines = $t->print("c:\temp\schdtime.bat");
    print $t->getline;
    $lines = $t->print("exit");
    $t -> close;
    附加圖片 附加圖片 csharp.jpg  
    此文章於 2010-03-31 02:34 PM 被 bx2aa 編輯。

  8. #8
    我是嫩咖
    註冊日期
    2001-02-26
    所在地區
    FTTH 50M/5M 固定+50M/5M浮動 + MOD + KOD
    討論區文章
    7,619

    回覆: 有這樣的備份軟體嗎?

    檔名格式:內容+日期.txt,例:工作報告2010-03-29.txt
    要能以檔名來過濾,因為以檔案日期來過濾的話,會不準!
    測試中……
    ∼一雙冷眼看人生;滿腔熱血酬知己∼

    P.S.你可以叫我「阿斌」或「Alan」,請不要叫我mis339,謝謝。

  9. #9
    會員
    註冊日期
    2001-05-18
    討論區文章
    1,939

    回覆: 有這樣的備份軟體嗎?

    用時間最新可能有人把去年的點開還存檔所以會有問題

    跑完批次後執行
    echo %date:~0,10%| sed -e "s/\//-/g">yesterday.txt
    ===============================
    C:\Documents and Settings\bx2aa>echo %date%
    2010/03/31 星期三
    =============================== 我的日期格式 所以我把 / 換為 -
    但是/ 為分隔兩個欄位所以跳脫原意變為 \/

    把 current day 紀錄, 下一次跑拿出來用, 所以先建一個檔案叫
    yesterday.txt 內容填入 2010-03-30

    然後

    :start
    for /F %%i in (yesterday.txt) do set yesterday=%%i
    if not exist \\zs\work\*%yesterday%.txt zs.exe && msgzs.exe
    if not exist \\ls\work\*%yesterday%.txt ls.exe && msgls.exe
    if not exist \\ww\work\*%yesterday%.txt ww.exe && msgww.exe
    sleep 300
    if exist \\zs\work\*%yesterday%.txt if exist \\ls\work\*%yesterday%.txt if exist \\ww\work\*%yesterday%.txt && call package.bat && mail.exe && echo %date:~0,10%| sed -e "s/\//-/g">yesterday.txt && exit
    goto start

    package.bat 內容應該不用給吧!
    for /F %%i in (yesterday.txt) do set yesterday=%%i
    copy \\zs\work\*%yesterday%.txt c:\temp
    .......
    "C:\Program Files\WinRAR\winrar.exe" a test c:\temp\*.*
    此文章於 2010-03-31 05:59 PM 被 bx2aa 編輯。

  10. #10
    我是嫩咖
    註冊日期
    2001-02-26
    所在地區
    FTTH 50M/5M 固定+50M/5M浮動 + MOD + KOD
    討論區文章
    7,619

    回覆: 有這樣的備份軟體嗎?

    老大我錯了……
    我來是想解決問題而已……
    結果一搞……給了自己更多問題……


    ∼一雙冷眼看人生;滿腔熱血酬知己∼

    P.S.你可以叫我「阿斌」或「Alan」,請不要叫我mis339,謝謝。

類似的主題

  1. 【求助】有這樣的軟體嗎?
    作者:hertw 所在討論版:-- 網 路 技 術 版
    回覆: 6
    最後發表: 2004-06-21, 06:28 AM
  2. 【求助】請問有這樣的軟體嗎?
    作者:七星硬盒 所在討論版:-- 光 碟 燒 錄 討 論 版
    回覆: 2
    最後發表: 2003-09-20, 01:50 PM
  3. 有這樣的軟體嗎
    作者:pekinese 所在討論版:-- 其 他 軟 體 討 論 版
    回覆: 30
    最後發表: 2003-08-22, 11:01 PM
  4. 回覆: 14
    最後發表: 2002-11-09, 04:47 PM
  5. 磁帶機的備份軟體~~~
    作者:andytang 所在討論版:-- 其 他 軟 體 討 論 版
    回覆: 0
    最後發表: 2002-01-06, 06:51 PM

 

連線已被您主機上的軟體中止 c# socket

system.net.sockets.socket 連線已被你主機上的軟體中止

C#連線被主機軟體中止

發表文章規則

  • 不可以發表新主題
  • 不可以回覆文章
  • 不可以上傳附加檔案
  • 不可以編輯自己的文章
  •