2017年11月21日火曜日

Linuxの設定ファイルを効率よくバックアップする関数

設定ファイルなどを変更する際にファイル名に日付などを入れてバックアップを取ることがよくある。例えば、hostsファイルを変更する場合は、以下のようにコピーコマンドを入力していた。

# cp -p /etc/hosts /etc/hosts_YYYYMMDD ※YYYYMMDDは日付

毎回このようにcpコマンドを打ち込むのが面倒に感じ始めたので、以下のような関数を作ってみた。

function cbk () { command cp -p ${1} ${1}_`date +"%Y%m%d_%H%M%S"`; ls -l ${1} ${1}_*; }

以下は/etc/hostsファイルをバックアップした例となる。

# function cbk () { command cp -p ${1} ${1}_`date +"%Y%m%d_%H%M%S"`; ls -l ${1} ${1}_*; }
# cbk /etc/hosts
------------------------------
-rw-r--r-- 1 root root 187 11月 10 22:22 /etc/hosts
-rw-r--r-- 1 root root 187 11月 10 22:22 /etc/hosts_20171119_064722
------------------------------

~/.bashrcに登録しておけば便利。

# cat ~/.bashrc
------------------------------
# .bashrc
# User specific aliases and functions
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'

alias ccat="grep -v -e '^ *#' -e '^$'"
function cbk () { command cp -p ${1} ${1}_`date +"%Y%m%d_%H%M%S"`; ls -l ${1} ${1}_*; }

# Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi
------------------------------

再ログインすれば反映されてコマンドが使えるようになる。即座に使えるようにしたい場合は、以下コマンドで反映させればよい。

# source ~/.bashrc

0 件のコメント:

コメントを投稿

人気の投稿