読者です 読者をやめる 読者になる 読者になる

keima's caprice diary

気付いたことをメモのように綴ります。なるべく義務っぽくならないように気まぐれに記録します。

centOS rootユーザ sshログインさせない方法

rootユーザをsshログインさせない設定    
    
バックアップ取得    
    cp /etc/ssh/sshd_config /etc/ssh/sshd_config.org
    
設定変更    
    sed -i -e 's/\#PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config
    
差分チェク    
    diff /etc/ssh/sshd_config /etc/ssh/sshd_config.org
    
構文チェク    
    sshd -t
    エラーメッセージが表示されなければOK。
    
サービス再起動    
    /etc/init.d/sshd restart

sed(stream editor)でnic設定ファイルを量産

RHEL7でnicの設定変更するのにラクできないかと思った。

 

1. 元々ある(最低限の設定を記述した)ifcfgファイルをコピー

# cp /etc/sysconfig/network-scripts/eth0 /etc/sysconfig/network-scripts/ifcfg-eth1

 

2. コピーした設定ファイルを編集(sedのiオプションで対象ファイルを上書き)
# sed -i -e 's/HWADDR=..:..:..:..:..:../HWADDR=xx:xx:xx:xx:xx:xx/' /etc/sysconfig/network-scripts/ifcfg-eth1
# sed -i -e 's/IPADDR=.\+\..\+\..\+\..\+/IPADDR=xx\.xx\.xx\.xx/' /etc/sysconfig/network-scripts/ifcfg-eth1
# sed -i -e 's/NAME=.\+/NAME=eth1/' /etc/sysconfig/network-scripts/ifcfg-eth1
# sed -i -e 's/DEVICE=.\+/DEVICE=eth1/' /etc/sysconfig/network-scripts/ifcfg-eth1

 

設定後確認後、機器再起動。

ファイルバックアップ シェルスクリプト

backup.sh
#! /bin/bash
cp /etc/samba/smb.conf /etc/samba/smb.conf.`date +%Y%m%d`
ls -alt /etc/samba/

linux centos grep 改行 空白 コメント行 削除

メント行や改行だけの行や空白だけの行を削除するスクリプト

今回の例では「/etc/zabbix/zabbix_server.conf」を対象にした。

処理内容としては、

1. 一時環境変数定義

2. オリジナルファイルのバックアップを作成

3. 不要行削除

4. 一時ファイル削除

5. 一時環境変数削除

以下、スクリプト(one-liner)

---

export TEMPVAR="/etc/zabbix/zabbix_server.conf" ; \
\cp -f $TEMPVAR $TEMPVAR.org ; \
\cp -f $TEMPVAR $TEMPVAR.tmp ; \
cat $TEMPVAR.tmp | \
egrep -v "#" | \
egrep -v "^\n?+$" | \
egrep -v "^\s?+$" > \
$TEMPVAR ; \
rm -rf $TEMPVAR.tmp ; \
unset TEMPVAR

---

Linux コピー 上書き 再帰 強制 エイリアス

CentOs6で上書き確認無しでディレクトリごとコピーする方法。

通常は

cp -rf [src] [dst]

でおk。ただCentOsは通常エイリアスで [-i] オプションが効いているので上書き確認が都度入るので、エイリアスを無効にするために [\] (backslash) をcpの前に置く必要がある。ということで通常は下記になる場合がほとんど。

\cp -rf [src] [dst]

 

zzz....

 

 

Linux Diff ディレクトリ

Diffコマンドでディレクトリも含めて再帰的に差分チェックをする方法。

 

diff -qr [ディレクトリ1] [ディレクトリ2]

 

 

centos find ファイル内の特定文字列検索

1. カレントディレクトリ以下に対して検索を実行(find ./)

2.  ファイルかディレクトリか判定後、ファイルを検索対象にする(-type f)

3. 検索結果を全て出力(-print)

4. 出力結果それぞれに対してパイプする(| xargs)

5. 'xxxx'を含む行をフィルタし、行番号を付けて標準出力へアウトプットする(grep -n 'xxxx')

 

■コマンド

find ./ -type f -print | xargs grep -n 'xxxx'

■出力形式

フルパス:行数:フィルタされた行の本文