bashのワンライナー備忘録。
今回は、有効になっているNICのIPアドレスを取得するワンライナーです。
grep、awkやcutコマンドは使用していません。
ちなみに、IPv6は無視。
有効なNICすべて
ifconfig | sed -n '/^[A-Za-z0-9]/ {N;/dr:/{;s/.*dr://;s/ .*//;p;}}'
NICを指定する場合
ifconfig eth0 | sed -n '/^[A-Za-z0-9]/ {N;/dr:/{;s/.*dr://;s/ .*//;p;}}'
lha形式で配布されているWordpressテーマをインストールする際に、一度Windows PCで展開してSFTPなりでアップロードするのも何なのでCentOSでlhaを扱えるようパッケージを導入しました。
自分用の備忘録として記録。
昨日の教訓を踏まえ、WEBやDNSの設定ファイル、データベースをバックアップするスクリプトを作成しました。
せっかくなので公開します。
#/bin/sh
#=========================================================
#
# matakichi.info バックアップスクリプト
#
# FileName:
# server_backup.sh
#
# Description:
# webコンテンツ、データベース、DNS各種のバックアップを
# 作成。
#
# Usage:
# cronに登録
# server_backup.sh
#
# 制限・前提:
#
# Version:
# Ver 1.0 2011/10/25 matakichi
#
# MEMO:
#
#=========================================================
unset LANG
# バックアップ作成先
BACKUPDIR="/opt/backup"
# データベース root パスワード
DBROOTPASS="1234qwerasdf"
# バックアップ対象のDB
BACKUP_DB=("mysql" "mdialog")
#---------------------------------------------------------
mkdir -p ${BACKUPDIR}
cd ${BACKUPDIR}
mkdir -p ./var
mkdir -p ./etc
# 1. /var/www
rsync -av --delete /var/www/ ./var/www
# 2. /var/named
rsync -av --delete --exclude="/chroot/proc/" /var/named/ ./var/named
# 3. /etc/ssh
rsync -av --delete /etc/ssh ./etc/ssh
# 4. /etc/httpd
rsync -av --delete /etc/httpd ./etc/httpd
# 5. /etc/my.cnf
cp -a /etc/my.cnf ./etc/my.cnf
# 6. データベースのダンプ
for (( i = 0; i < ${#BACKUP_DB[@]}; ++i ))
do
mysqldump ${BACKUP_DB[i]} -uroot -p${DBROOTPASS} --add-drop-database --databases > ${BACKUPDIR}/${BACKUP_DB[i]}.sql
done
# 圧縮
tar zcf ${BACKUPDIR}/backup_`date +%Y%m%d%H0000`.tar.gz *.sql ./etc ./var
# 一週間前のファイルを削除
rm -f ${BACKUPDIR}/backup_`date --date '1 week ago' +%Y%m%d%H0000`.tar.gz
# ファイルの削除
rm -f ${BACKUPDIR}/*.sql
exit 0
上記のコードをサーバの適当な場所に設置し、chmod 755とかしてあげてcronに登録。
頻繁に更新しているわけでもないので、実行間隔は毎日2:00くらいで。
個人用途なのでこれで十分かと思っていますが、改良するとしたら、
- バックアップファイルの作成確認
- メール通知
でしょうか。
暇を見て変更したいと思います。
