1. 程式人生 > >如何用SED批量 查詢、新增、刪除、替換配置檔案裡面的選項

如何用SED批量 查詢、新增、刪除、替換配置檔案裡面的選項

廢話不說,直接上程式碼,注意裡面的單引號、雙引號及轉義符:

#!/bin/sh
function mariadb_conf {
        #yum install mariadb mariadb-server MySQL-python
        #cp /usr/share/mysql/my-medium.cnf /etc/my.cnf
        #mysql conf
        if grep -q default-storage-engine /etc/my.cnf;then
                echo "ok for mysql conf already ok"
        else
#\cp conf/my.cnf /etc/my.cnf \cp /usr/share/mysql/my-medium.cnf /etc/my.cnf str[1]="bind-address = 10.0.0.11" str[2]="default-storage-engine = innodb" str[3]="innodb_file_per_table" str[4]="collation-server = utf8_general_ci"
str[5]="init-connect = 'SET NAMES utf8'" str[6]="character-set-server = utf8" line=`grep -n "\[mysqld\]" /etc/my.cnf | cut -d ":" -f 1` for i in `seq 6`;do sed -i ''$line'a'"${str[$i]}" /etc/my.cnf done
systemctl enable mariadb.service systemctl restart mariadb.service #/etc/init.d/mysqld start mysqladmin -u root password openstack echo "fix mysql conf successful" fi } function keystone { #install keystone ###cteate radom 10 num for keystone #ADMIN_TOKEN=`openssl rand -hex 10` #mkdir /etc/keystone #mkdir /var/log/keystone #mkdir /var/run/keystone pid=`ps -e | grep keystone-all | grep -v grep | wc -l` if [ $pid -gt 0 ];then echo "ok for keystone" else #line=`grep -n "#admin_token = ADMIN" $conf | cut -d ":" -f 1` #sed -i ''$line'a'"admin_token = 1a267aae6d394e2f97b0" $conf ###test conf ###grep "^[a-z]" /etc/keystone/keystone.conf #\cp ../conf/keystone.conf /etc/keystone/ conf=/etc/keystone/keystone.conf strs[1]="#admin_token = ADMIN" strd[1]="admin_token = 1a267aae6d394e2f97b0" strs[2]="#debug = false" strd[2]="debug = true" strs[3]="#verbose = false" strd[3]="verbose = true" strs[4]="#log_file = <None>" strd[4]="log_file = keystone.log" strs[5]="#log_dir = <None>" strd[5]="log_dir = \/var\/log\/keystone" strs[6]="#connection = <None>" strd[6]="connection = mysql:\/\/keystone:keystone\@controller1\/keystone" strs[7]="#provider = keystone.token.providers.uuid.Provider" strd[7]="provider = keystone.token.providers.uuid.Provider" strs[8]="#driver = keystone.token.persistence.backends.sql.Token" strd[8]="driver = keystone.token.persistence.backends.sql.Token" for i in `seq 8`;do sed -i '/'"^${strd[$i]}"'/d' $conf line=`grep -n "${strs[$i]}" $conf | cut -d ":" -f 1` #echo $line sed -i ''$line'a'"${strd[$i]}" $conf done keystone-manage pki_setup --keystone-user root --keystone-group root chown -R keystone:keystone /var/log/keystone chown -R keystone:keystone /etc/keystone/ssl chown -R keystone:keystone /etc/keystone chmod -R o-rwx /etc/keystone/ssl #Populate the Identity service database: #keystone-manage db_sync su -s /bin/sh -c "keystone-manage db_sync" keystone systemctl enable openstack-keystone.service systemctl restart openstack-keystone.service fi #add crond #(crontab -l -u keystone 2>&1 | grep -q token_flush) || \ #echo '@hourly /usr/bin/keystone-manage token_flush >/var/log/keystone/keystone-tokenflush.log 2&1' \ #>> /var/spool/cron/keystone } mariadb_conf keystone

相關推薦

如何用SED批量 查詢新增刪除替換配置檔案裡面選項

廢話不說,直接上程式碼,注意裡面的單引號、雙引號及轉義符: #!/bin/sh function mariadb_conf { #yum install mariadb mariadb-server MySQL-python #

演算法導論 第十二章:二叉查詢樹 筆記(二叉查詢查詢二叉查詢插入和刪除隨機構造的二叉查詢樹)

二叉查詢樹是一種樹資料結構,它與普通的二叉樹最大的不同就是二叉查詢樹滿足一個性質:對於樹中的任意一個節點,均有其左子樹中的所有節點的關鍵字值都不大於該節點的關鍵字值,其右子樹中的任意一個節點的關鍵字值都不小於該節點的關鍵字值。 在二叉查詢樹上可以進行搜尋、取最小值、取最大值、取指定節點的前驅

MySQL索引操作:建立新增刪除索引

如果對索引的作用不太瞭解的建議先閱讀上一篇博文:MySQL索引的作用和分類介紹 建立索引 建立表的時候建立索引 格式: CREATE TABLE 表名[欄位名 欄位型別] [UNIQUE|FULLTEXT|SPATIAL|...] [INDEX|K

MySQL中外來鍵的定義作用新增刪除

1 簡介 在實際開發的專案中,一個健壯資料庫中的資料一定有很好的參照完整性。例如學生檔案和成績單兩張表,如果成績單中有張三的成績,學生檔案中張三的檔案卻被刪除了,這樣就會產生垃圾資料或者錯誤資料。為了保證資料的完整性,將兩張表之間的資料建立關係,因此就需要在成績

SQL_3th_T-SQL語句建立和刪除資料庫新增刪除約束

在SQL Server 2008 R2中點選新建查詢,輸入如下程式碼,選中程式碼段,並點選執行,就能執行選中區域程式碼: --使用數T-SQL語句來建立資料庫 create database Students on ( name='Students', --這是資料檔案的邏

在arcgis中提取新增刪除Shape檔案Z值

一、問題描述 有一批3d模型沒有高程值;在BS平臺上預覽顯示這些模型插入地下去了;預覽效果非常差,因為Z值為都是0; 由於平臺讀取資料是geometry的Z值欄位,而不是重新建一個欄位,所以要改寫ge

Laravel5.5整合七牛雲上傳管理(刪除查詢

一、為什麼使用七牛雲端儲存 1、使用七牛頻寬和CDN,速度快,不佔用開發者伺服器。 2、支援圖片任意格式、任意解析度自動生成,可以用來做圖片伺服器。 3、小流量免費:儲存空間 10GB,每月下載流量 10GB,每月 PUT/DELETE 10萬次請求,每月 GET 10

常用模組的測試例(登入,新增刪除查詢

1、登入 ①使用者名稱和密碼都符合要求(格式上的要求) ②使用者名稱和密碼都不符合要求(格式上的要求) ③使用者名稱符合要求,密碼不符合要求(格式上的要求) ④密碼符合要求,使用者名稱不符合要求(格

python學習——修改新增刪除元素

在上週簡要的學習了一下python列表的一些操作,並做了做《python程式設計——從入門到實踐》第三章的一些例題。3-1、3-2names=['tony','tom','marry'] print(names[0]) print(names[1]) print(names[

SQL SERVER 查詢每日新增使用者數量次留數量

1、建立使用者新增表和登入日誌表: --使用者新增表 create table new_user (id int identity(1,1), uid varchar(20), regist_time datetime) insert into new_user(uid

面試題9:數組堆化堆的插入堆的刪除堆排序

art 面試 rewind 刪除 test from minimum 面試題 排序 參考:白話經典算法系列之七 堆與堆排序 1 #include <iostream> 2 #include <climits> 3 #include <v

SQL SERVER 新增新增字段修改字段 判斷表是否存在

相關信息 not null record begin hist char use size content // 新增之前判斷表是否存在 IF NOT EXISTS (SELECT NAME FROM SYSOBJECTS WHERE ID = OBJECT_ID(‘t

第一次嘗試用BaseRecyclerViewAdapterHelper實現上拉重新整理載入更多新增頭佈局尾佈局等等功能

BaseRecyclerViewAdapterHelper 簡介: 減少重複 Adapter 程式碼 新增 Item 的點選事件,長按事件以及子控制元件的點選事件 新增頭部、尾部,下拉重新整理、上拉載入(上拉載入的5種載入更多動畫任你選擇,後期會新增更多的載入動畫)、沒有更多

C++類中單鏈表的實現(頭插尾插頭刪尾刪指定位置插入指定位置刪除連結串列長度清空連結串列連結串列排序)

#include<iostream> using namespace std; class Node { public:Node():next(NULL){}Node(int n,Node *p = NULL):value(n),next(p){}int val

table表格的相關設定(邊框合併隔行變色新增內邊框單獨設定某一列)

1、為table表格設定邊框合併 table{     border-collapse:collapse;     border-spacing:0; } 2、隔行變色和新增內邊框 function addColor() {     var tbodyTrList = $(

Notification(Notification的通知欄常駐各種樣式點選無效禁止滑動刪除相容低版本)

Notification(Notification的通知欄常駐、Notification的各種樣式、Notification點選無效、Notification禁止滑動刪除) Android的Notification是android系統中很重要的一個機制, 產品人員常常利用通

Linux筆記:禁止root賬號遠端登入新增swap分割槽修改ulimit

新裝ubuntu需要執行的幾個操作:1.修改sshd預設埠,禁止root登入sudo vi /etc/ssh/sshd_config將PermitRootLogin 設定為No      --表示禁止root遠端登入將Port 修改為2222sudo service sshd

Scala——類的定義重新實現toString方法檢查先決條件新增欄位私有方法自指向輔助構造器操作符過載隱式轉換

/** * Created by jiaoshuhai on 2018/4/23. *///類的建立class Rational(n:Int,d:Int){//類引數,oject無引數  //檢察先決條件  require(d != 0)  private def gcd(a : Int ,b :Int) :

堆的構建堆的插入堆的刪除堆排序

#include<stdio.h> #include<stdlib.h> #define INIT_ARRAY_SIZE 50 int heap_size; //堆大小 int heap_cap_size; //堆容量大小 /*函式宣告*/ //構建堆 void build_

jQuery各種選擇器節點事件,刪除複製插入元素的使用方法總結

《jQuery全面提速》筆記(2015年12月19日)  (1)表單域選擇器     :input選擇器,  用於選擇所有input、textarea、select和button元素, $(":input").each(function(){ });     :text選擇器,    用於選擇所有單行文字框(