• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            使用crontab自動化拷貝工作

            使用crontab自動化拷貝工作

            一、 背景

            由于開發機上缺少相應的環境,平時我們(特別是像我之類的新人)為了調試方便,往往會直接在測試機上進行開發工作,然后再拷貝到開發機上,提交到svn。然而這樣會存在很多問題,有時候我們明明在測試機上測試正常,提測之后卻出了問題,仔細檢查可能會發現我們拷貝了文件到svn。避免這樣的問題,一是在開發過程中,記錄自己修改創建的文件,但這樣比較繁瑣;二是在開發機上開發,自測時使用測試機進行測試。毫無疑問第二種方法要好一些,但是這樣往往會增加很多繁瑣的拷貝工作,本文就是為了減少這樣的工作而撰寫。

            二、 SSH免密碼登錄

            我們首先要在測試機上建立免密碼登陸開發機的信任關系。A為測試機(我的測試機是aaa@bbb.com); B為開發機(我的開發機是ccc@ddd.com);
            在A上的命令:
            # ssh-keygen -t rsa (機器A上操作,連續三次回車,即在本地生成了公鑰和私鑰,不設置密碼)
            # ssh ccc@ddd.com (機器A上操作,ssh登陸機器B時需要輸入密碼)
            # mkdir .ssh;chmod 700 .ssh (機器B上操作,如果.ssh目錄存在,則不需要mkdir, 注:必須將.ssh的權限設為700)
            # scp ~/.ssh/id_rsa.pub ccc@ddd.com:/home/users/qinlei01/.ssh/id_rsa.pub(機器A上操作,需要輸入密碼)
            登陸機器B,在B上的命令:
            # touch ~/.ssh/authorized_keys (如果已經存在這個文件, 跳過這條)
            # chmod 600 ~/.ssh/authorized_keys (# 注意: 必須將~/.ssh/authorized_keys的權限改為600, 該文件用于保存ssh客戶端生成的公鑰,可以修改服務器的ssh服務端配置文件/etc/ssh/sshd_config來指定其他文件名)
            # cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys (將id_rsa.pub的內容追加到 authorized_keys 中, 注意不要用 > ,否則會清空原有的內容,使其他人無法使用原有的密鑰登錄)
            回到A機器測試是否能免密碼登陸機器B:
            # ssh ccc@ddd.com(不需要密碼, 登錄成功)
            =====================================================================
            附上A與B互相免密碼登陸的方法:
            機器A:192.168.0.106
            機器B:192.168.0.107
            1、在機器A上執行如下操作
            ssh-keygen -d
            然后一路回車
            cd ~/.ssh
            cp id_dsa.pub authorized_keys2
            chmod 600 authorized_keys2
            2、在B上做如上同樣的操作
            3、建立A到B的信任關系(即A免密碼登陸B)
            在A中執行(注意需要把文件改名)
            scp id_dsa.pub usernameB@192.168.0.107:.ssh/a.pub
            在B中的~/.ssh下執行
            cat a.pub >> authorized_keys2
            此時從A執行ssh到B就不用輸入密碼了
            4、建立B到A的信任關系(即B免密碼登陸A)
            在B執行
            scp id_dsa.pub usernameA@192.168.0.106:.ssh/a.pub
            在A執行
            cat a.pub >> authorized_keys2
            在配置過程需要輸入多次密碼
            此時,無論從A到B,還是從B到A,都不需要輸入密碼了
            如果出現問題,可以刪除~/.ssh所有文件(連文件夾),然后重新配置
            ====================================================================

            三、建立拷貝文件腳本

            1、在機器A某路徑建立拷貝文件腳本(如/home/wiki/xx.sh),在該xx.sh中加入自己需要從開發機上拷貝的文件。例如如下簡單的xx.sh(要將xx.sh設定為可執行,可簡單chmod 777 xx.sh

                scp  B機器相應的目錄  A機器相應的目錄

             
             

             


               scp qinlei01@db-gouyi.db01:/home/users/qinlei01/xxx /home/wiki/xxx

             

            四、 crontab添加任務

            1、 在A機器輸入如下命令

            # crontab –e (打開crontab的任務列表文件)

            2、 輸入如上命令后,vi會打開一個文件(不用管他),在其中輸入如下命令(如果你想每一分鐘執行xx.sh的話)

            */1  * * * * /home/wiki/xx.sh

            五、附錄

            1、crontab使用:http://vbird.dic.ksu.edu.tw/linux_basic/0430cron.php#crontab

            六、完結

            到現在你的xx.sh腳本將會每隔一分鐘執行拷貝任務了,這樣你就不需要去關心從開發機拷貝代碼到測試機的繁瑣事務了。如果想即時將開發機上的代碼拷貝到測試機上,只需手動執行xx.sh腳本即可。
            xx.sh可以根據你的需要編寫一些高級的邏輯,來判斷文件自上次拷貝之后是否進行了修改,如果沒有修改就跳過拷貝邏輯,來處理復雜的拷貝情況,這里給出 一個實現方案:在開發機上建立一個文件yy.txt,并在開發機上運行一個腳本定時計算需要拷貝的文件的md5值,與之前保存在yy.txt中相應文件的 md5值做比較,如果md5值改變,則寫入另外一個文件zz.txt,然后測試機每隔固定時間從開發機拷貝這個zz.txt文件,這樣測試機就知道哪些文 件發生了改變,只需要拷貝zz.txt中的文件即可,注意zz.txt中的相應文件的md5值需要覆蓋yy.txt中相應文件的md5值,便于下一次比 較。當然如果覺得拷貝zz.txt也不夠快速,可以考慮使用k-v數據庫來存儲。
            希望這篇簡單的文檔能對你有所幫助。


            posted on 2012-03-26 21:38 MrRightLeft 閱讀(1562) 評論(3)  編輯 收藏 引用 所屬分類: Linux

            評論

            # re: 使用crontab自動化拷貝工作 2012-03-27 07:51 newk

            學習和使用git或者hg這種分布式源碼控制軟件,你上面碰到的問題將不復存在,而且和SVN也不會有什么沖突  回復  更多評論   

            # re: 使用crontab自動化拷貝工作 2012-03-27 09:42 tb

            好好研究一下   回復  更多評論   

            # re: 使用crontab自動化拷貝工作 2012-03-27 11:18 MrRightLeft

            @newk
            一般git/svn在開發機上使用,測試機上沒有git/svn,代碼需要手動從開發機同步到測試機。不過可以考慮使用svn的hook,在commit時,鉤子程序自動將代碼同步到測試機。git有略微使用過,兄臺可否寫一篇文章介紹一下使用方法?  回復  更多評論   

            <2012年3月>
            26272829123
            45678910
            11121314151617
            18192021222324
            25262728293031
            1234567

            導航

            統計

            隨筆分類

            隨筆檔案

            文章分類

            文章檔案

            搜索

            最新評論

            閱讀排行榜

            評論排行榜

            999久久久国产精品| 久久久青草久久久青草| 亚洲国产精品综合久久一线| 大香伊人久久精品一区二区| 少妇高潮惨叫久久久久久| 午夜不卡888久久| 日本高清无卡码一区二区久久| 无码人妻精品一区二区三区久久久 | 四虎国产精品免费久久5151| 久久青青草原精品国产软件| 精品久久久久久中文字幕大豆网 | 久久久久久久久久久精品尤物| 国产精品9999久久久久| 亚洲人AV永久一区二区三区久久| 国产精品美女久久久m| 伊人情人综合成人久久网小说| 久久久久亚洲AV片无码下载蜜桃| 国产精品熟女福利久久AV| 精品综合久久久久久888蜜芽| 一本久久综合亚洲鲁鲁五月天| 久久久久成人精品无码中文字幕 | 亚洲国产精品综合久久网络| 久久综合欧美成人| 久久久久久久精品成人热色戒| 亚洲国产精品狼友中文久久久| 久久综合久久综合久久综合| 久久久久久久久久免免费精品| 漂亮人妻被黑人久久精品| 伊人色综合久久天天网| 久久天天躁狠狠躁夜夜网站| 亚洲欧美国产日韩综合久久| 久久99精品国产99久久6| 91精品国产高清久久久久久io| 久久久久亚洲av成人网人人软件 | 欧美久久天天综合香蕉伊| 国产69精品久久久久99| 色综合久久最新中文字幕| 久久这里只精品国产99热 | 三级韩国一区久久二区综合| 91精品国产91久久久久久| 久久国产精品久久|