<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          shell實(shí)現(xiàn)兩臺(tái)服務(wù)器的文件實(shí)時(shí)同步

          共 2676字,需瀏覽 6分鐘

           ·

          2024-06-20 17:33

          ????最新2024IDEA永久激活(支持全家桶)????

          關(guān)注上面公眾號(hào)回復(fù)“激活碼”,獲取最新永久激活碼


          背景

          如果要實(shí)現(xiàn)兩臺(tái)服務(wù)器的文件的熱備份,要怎么做呢?使用shell腳本可以輕松實(shí)現(xiàn)。

          分析

          實(shí)現(xiàn)文件實(shí)時(shí)監(jiān)控的命令為: inotifywait 

          當(dāng)文件有新增、修改、刪除等操作時(shí),這個(gè)文件監(jiān)控就會(huì)觸發(fā)事件,來通知你。

          文件同步的命令為:rsync 

          這個(gè)可以將文件從一臺(tái)服務(wù)器快速同步到另外一臺(tái)服務(wù)器。

          將inotifywait 和 rsync 結(jié)合起來就可以實(shí)現(xiàn)實(shí)時(shí)同步的熱備效果了。

          下面是完整的腳本:

          #!/bin/bash

          CONFIG_FILE="config.txt"

          # 讀取配置文件,格式為:源目錄:目標(biāo)目錄
          read_config_file() {
              while IFS=: read -r source_dir target_dir; do
                  if [[ $source_dir && $target_dir ]]; then
                      inotifywait ---e modify,create,delete "$source_dir" |
                          while read path action file; do
                              rsync -avz "$source_dir/" root@目標(biāo)IP:"$target_dir/"
                          done &
                  fi
              done < "$CONFIG_FILE"
          }


          # 主函數(shù)入口
          main() {
              if [[ -"$CONFIG_FILE" ]]; then
                  read_config_file
              else
                  echo "配置文件 $CONFIG_FILE 不存在."
              fi
          }


          # 執(zhí)行主函數(shù)
          main

          配置文件config.txt:

          /data/sync/watched:/data/sync/watched

          總結(jié)

          文件實(shí)時(shí)同步,借助inotifywait 和 rsync 就可以輕松實(shí)現(xiàn)。

          10個(gè) Linux 命令,讓你的操作更有效率

          shell中將多行文本輸出到文件里

          背景

          有時(shí)候不想復(fù)制文件,而是想直接將一段字符串直接按照多行輸出到文件里。這樣操作非常方便。Shell中echo輸出內(nèi)容不換行的效果實(shí)現(xiàn)

          分析

          如果只是想將單行內(nèi)容輸出到文件里,使用echo即可。

          echo "這是內(nèi)容"  > test.txt

          如果要輸出多行到文件里呢?

          echo "1 2 3 " > test.txt

          這樣的是不能自動(dòng)換行的,結(jié)果就是:

          換行符會(huì)原樣輸出。

          如果要使換行符生效,需要加一個(gè)e參數(shù):

          echo -"1 3 5 " > test2.txt

          結(jié)果:

          所以,echo 是可以將多行文本輸出到文件的。不過這里要寫入很多換行符。

          如果不想這么麻煩,可以使用cat命令。Shell中echo輸出帶有顏色的日志的實(shí)現(xiàn)方法

          cat << EOF >>test3.txt

          11111

          22222

          33333

          EOF

          EOF設(shè)置為結(jié)尾符,然后第一行設(shè)置為:cat << EOF >> 文件名

          隨后的幾行就是文件內(nèi)容輸入?yún)^(qū),前面的空格也會(huì)計(jì)算在內(nèi)。

          當(dāng)輸入EOF再回車的話,就結(jié)束輸入了。

          其實(shí),輸入什么內(nèi)容結(jié)束輸入,是第一行設(shè)置的EOF決定的。你可以把EOF改為其他的字符串或者一個(gè)字符,只要你輸入的內(nèi)容里不會(huì)出現(xiàn)即可。因?yàn)槌霈F(xiàn)了就會(huì)識(shí)別為結(jié)束,后續(xù)的內(nèi)容不會(huì)再被輸出到文件里。Linux 服務(wù)器監(jiān)控性能和資源

          結(jié)果:

          這樣的輸入輸出是非常符合人類習(xí)慣的,不用再寫換行符了。

          總結(jié)

          本文列出來兩種將多行文本輸出到文件的方法,echo和cat都可以實(shí)現(xiàn)哦。

          瀏覽 53
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  成人性生活无码免费视频 | 中文字幕在线免费观看视频 | 免费黄色视频网站在线 | 学生妹无遮挡毛片 | 日本一区三区祀频在线观看 |