• <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自動(dòng)化拷貝工作

            使用crontab自動(dòng)化拷貝工作

            一、 背景

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

            二、 SSH免密碼登錄

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

            三、建立拷貝文件腳本

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

                scp  B機(jī)器相應(yīng)的目錄  A機(jī)器相應(yīng)的目錄

             
             

             


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

             

            四、 crontab添加任務(wù)

            1、 在A機(jī)器輸入如下命令

            # crontab –e (打開(kāi)crontab的任務(wù)列表文件)

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

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

            五、附錄

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

            六、完結(jié)

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


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

            評(píng)論

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

            學(xué)習(xí)和使用git或者h(yuǎn)g這種分布式源碼控制軟件,你上面碰到的問(wèn)題將不復(fù)存在,而且和SVN也不會(huì)有什么沖突  回復(fù)  更多評(píng)論   

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

            好好研究一下   回復(fù)  更多評(píng)論   

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

            @newk
            一般git/svn在開(kāi)發(fā)機(jī)上使用,測(cè)試機(jī)上沒(méi)有g(shù)it/svn,代碼需要手動(dòng)從開(kāi)發(fā)機(jī)同步到測(cè)試機(jī)。不過(guò)可以考慮使用svn的hook,在commit時(shí),鉤子程序自動(dòng)將代碼同步到測(cè)試機(jī)。git有略微使用過(guò),兄臺(tái)可否寫(xiě)一篇文章介紹一下使用方法?  回復(fù)  更多評(píng)論   

            <2011年5月>
            24252627282930
            1234567
            891011121314
            15161718192021
            22232425262728
            2930311234

            導(dǎo)航

            統(tǒng)計(jì)

            隨筆分類

            隨筆檔案

            文章分類

            文章檔案

            搜索

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            99久久成人国产精品免费| 久久久久黑人强伦姧人妻| 狠狠色丁香婷婷久久综合不卡| 精品久久久久久久中文字幕| 久久精品国产AV一区二区三区| 国产成人综合久久综合| 亚洲色欲久久久久综合网| 日韩欧美亚洲综合久久影院d3| 久久综合偷偷噜噜噜色| 免费国产99久久久香蕉| 欧美一区二区三区久久综| 久久精品国产亚洲Aⅴ香蕉 | 香蕉99久久国产综合精品宅男自 | 久久伊人精品一区二区三区| 久久免费小视频| 99国产精品久久| 久久国产精品成人片免费| 久久天天躁狠狠躁夜夜不卡| 人人狠狠综合久久亚洲| 久久精品国产99久久香蕉| 国产精品VIDEOSSEX久久发布| 国产精品9999久久久久| 久久国产免费观看精品3| 亚洲精品国精品久久99热一| 久久强奷乱码老熟女网站| 一本久久免费视频| 伊人久久大香线蕉精品不卡| 亚洲精品国精品久久99热| 日本精品久久久久影院日本| 久久久久国色AV免费看图片| 久久久久亚洲av成人无码电影 | 亚洲精品乱码久久久久久久久久久久 | 国产香蕉97碰碰久久人人| 嫩草影院久久99| 一级做a爰片久久毛片人呢| 免费观看久久精彩视频| 久久99精品国产麻豆不卡| 国产精品内射久久久久欢欢| 久久久精品视频免费观看| 久久人人超碰精品CAOPOREN| 人妻少妇精品久久|