Linux – スクリプト関連

投稿者:arrumis

Linuxに関するメモページ.

IPアドレス更新スクリプト(MYDNS)

#!/bin/bash

file="/tmp/ipaddress"
logfile="/var/log/ipchangelog" 

#現在のIPを取得する.
#nowipaddress=`curl -sS inet-ip.info`
nowipaddress=`curl inet-ip.info`
curlstatus=$?
#echo "curlstatus=$?"

#過去のIPと比較する.
oldipaddress=`dig ドメインサーバー 検索対象ドメイン | grep 検索ワード | sed -E "s/.*\s([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}).*/\1/" | grep -v 検索ワード`

#現在と過去のIPが異なれば,IP更新をする.
if [ "$nowipaddress" = "$oldipaddress" ]; then
        #現在と過去のIPが同じ場合でも,更新時間が一日以上経っていたら,IP更新をする.
        chengetimestamp=`tail -n 1 $logfile | sed -E "s/([0-9]{4}\-[0-9]{2}\-[0-9]{2})\s.*/\1/"`
        nowtime=`date +"%Y-%m-%d"`
        if [ "$chengetimestamp" != "$nowtime" ]; then
                curl --user ユーザー名:パスワード http://www.MyDNS.JP/login.html
                echo -e "`date +"%Y-%m-%d %H:%M:%S"` $oldipaddress \t--->\tContinue" >> $logfile
        fi
else
        #IP更新
        curl --user user:password http://www.MyDNS.JP/login.html
        echo -e "`date +"%Y-%m-%d %H:%M:%S"` $oldipaddress \t--->\t$nowipaddress\tChange" >> $logfile
fi

更新cron


*/20 * * * * root /usr/local/sbin/ipchange.sh > /var/log/ipchangelog_errer 2>&1

空フォルダ削除

#!/bin/bash</pre>
<pre>folder="/var/www/epgrec/video/"

sudo find $folder -type d -empty -delete

更新crom


sudo find /var/www/epgrec/video/ -type d -empty -delete

ffmpegエンコード(2012年頃)

<?php 
// 作成するファイル名の指定 
$lock_file = __DIR__ . '/lock.txt'; // ファイルの存在確認 
if( file_exists($lock_file) ){ 
        echo "多重起動はできません。\n"; 
        // スクリプトを終了する 
        exit(0);
} 

// 多重起動防止用ロックファイル作成 
touch( $lock_file );

//スクリプト開始 
// ファイル名の変更に使う文字コード 
mb_internal_encoding("UTF-8"); 
mb_regex_encoding("UTF-8"); 

# おまじない.ffmpeg.soを読み込む(php5-ffmpegの機能を使う) 
$extension="ffmpeg"; 
$extension_soname=$extension.".".PHP_SHLIB_SUFFIX; 
$extension_fullname=PHP_EXTENSION_DIR."/".$extension_soname; 

#$videoDir= "/var/datas/video"; //メディアのおいてあるフォルダ 
$videoDir= "/var/datas/clipb/epgrec_encode"; //メディアのおいてあるフォルダ 
$tmpDir = "/var/tmp"; //作業フォルダ 

if(!extension_loaded($extension)){ 
	dl($extension_soname) or die("Can't load extension $extension_fullname\n"); 
} 

# ディレクトリ内のファイルのリストを取得し,それぞれに対しての 
# 処理を行う. 

$medias=getDirFiles($videoDir); 

//一度の処理で,10個(12時間を考えている)の処理までとする. 

//回す場所は,各メディアの処理の直後に++で回すこと. 
$loopcounter = 1; //ループ変数初期化 

# フォルダの中のリストをそれぞれ回す 
foreach($medias as $video){ 
	//loop判定 
	if($loopcounter &amp;gt; 10):
            break;
        endif;
         
        $exts=strrchr($video, '.');     //拡張子を見る
#       printf("exts = %s\n",$exts);    //チェック用
#----------------------------------------------------------------------------------------------------------------#
#       .mp4の時
        if($exts == ".mp4"):
#           echo "find mp4 \n";         //チェック用
#----------------------------------------------------------------------------------------------------------------#
#       .aviの時
        elseif($exts == ".avi"):
#           echo "find avi \n";         //チェック用
            $mov = new ffmpeg_movie($videoDir."/".$video);      //メディアファイルを格納
             
#           アスペクト比を取得する
            if($mov-&amp;gt;hasVideo()){
                $h = $mov-&amp;gt;getFrameHeight();
                $w = $mov-&amp;gt;getFrameWidth();
                $asp = $w / $h;
                 
#               コピー用の名前を準備
#               元の名前:GR29_アニメタイトル 第111話[録画日時]「ほげほげ」(番組名).m2t
                 
                if($asp &amp;lt; 1.6 &amp;amp;&amp;amp; $asp &amp;gt; 1){
#                   4:3 encode
#                   printf("4:3\nhigh=%d,width=%d,aspect=%f \n",$h,$w,$asp);        //チェック用
                    //Randomファイル名生成
                    $tmpname = getRandomStr(10);
             
                    //音声分離
                    $check = exec("/usr/bin/ffmpeg -i \"".$videoDir."/".$video."\" -y -vn -acodec libfaac -ac 2 -ar 48000 -ab 256k \"".$tmpDir."/".$tmpname.".aac\" &amp;gt; acodeclog 2&amp;gt;&amp;amp;1");
                    //1パス目encode
                    $check = exec("/usr/bin/ffmpeg -i \"".$videoDir."/".$video."\" -f mp4 -y -threads 0 -b 2048k -bt 2048k -s 720x540 -r 30000/1001 -aspect 4:3 -vcodec libx264 -fpre /usr/share/ffmpeg/1pass.ffpreset -an -pass 1 -passlogfile x264log \"".$tmpDir."/".$tmpname.".264\" &amp;gt; /var/log/1passlog 2&amp;gt;&amp;amp;1");
                    //2パス目encode
                    $check = exec("/usr/bin/ffmpeg -i \"".$videoDir."/".$video."\" -f mp4 -y -threads 0 -b 2048k -bt 2048k -s 720x540 -r 30000/1001 -aspect 4:3 -vcodec libx264 -fpre /usr/share/ffmpeg/2pass.ffpreset -an -pass 2 -passlogfile x264log \"".$tmpDir."/".$tmpname.".264\" &amp;gt; /var/log/2passlog 2&amp;gt;&amp;amp;1");
                    //音声結合
                    $check = exec("MP4Box -mpeg4 -fps 29.9700298309 -add \"".$tmpDir."/".$tmpname.".264\" -add \"".$tmpDir."/".$tmpname.".aac\" -new \"".$tmpDir."/".$tmpname.".mp4\" &amp;gt; /var/log/mp4boxlog 2&amp;gt;&amp;amp;1");
                    //ファイル出力
                    $savename =strstr($video,'.',true);
                    $check = exec("mv ".$tmpDir."/".$tmpname.".mp4 "."\"".$videoDir."/psvita/".$savename."(ReEncode 720x540 x264 aac).mp4\" &amp;gt;&amp;gt; /var/log/mvlog 2&amp;gt;&amp;amp;1");
                    $check = exec("mv ".$videoDir."/".$video." ".$videoDir."/[originalFiles]/ &amp;gt;&amp;gt; /var/log/mvlog 2&amp;gt;&amp;amp;1");
                    //掃除
                    $check = exec("rm ".$tmpDir."/".$tmpname.".264 ".$tmpDir."/".$tmpname.".aac ".$tmpDir."/".$tmpname.".mp4 &amp;gt;&amp;gt; /var/log/rmlog 2&amp;gt;&amp;amp;1");
 
                }elseif($asp &amp;lt; 1.9 &amp;amp;&amp;amp; $asp &amp;gt;1.66){
#                   16;9 encode
#                   printf("16:9\nhigh=%d,width=%d,aspect=%f \n",$h,$w,$asp);       //チェック用
                    //Randomファイル名生成
                    $tmpname = getRandomStr(10);
                     
                     
                    //音声分離
                    $check = exec("/usr/bin/ffmpeg -i \"".$videoDir."/".$video."\" -y -vn -acodec libfaac -ac 2 -ar 48000 -ab 256k \"".$tmpDir."/".$tmpname.".aac\" &amp;gt; acodeclog 2&amp;gt;&amp;amp;1");
                    //1パス目encode
                    $check = exec("/usr/bin/ffmpeg -i \"".$videoDir."/".$video."\" -f mp4 -y -threads 0 -b 2048k -bt 2048k -s 1280x720 -r 30000/1001 -aspect 4:3 -vcodec libx264 -fpre /usr/share/ffmpeg/1pass.ffpreset -an -pass 1 -passlogfile x264log \"".$tmpDir."/".$tmpname.".264\" &amp;gt; /var/log/1passlog 2&amp;gt;&amp;amp;1");
                    //2パス目encode
                    $check = exec("/usr/bin/ffmpeg -i \"".$videoDir."/".$video."\" -f mp4 -y -threads 0 -b 2048k -bt 2048k -s 1280x720 -r 30000/1001 -aspect 4:3 -vcodec libx264 -fpre /usr/share/ffmpeg/2pass.ffpreset -an -pass 2 -passlogfile x264log \"".$tmpDir."/".$tmpname.".264\" &amp;gt; /var/log/2passlog 2&amp;gt;&amp;amp;1");
                    //音声結合
                    $check = exec("MP4Box -mpeg4 -fps 29.9700298309 -add \"".$tmpDir."/".$tmpname.".264\" -add \"".$tmpDir."/".$tmpname.".aac\" -new \"".$tmpDir."/".$tmpname.".mp4\" &amp;gt; /var/log/mp4boxlog 2&amp;gt;&amp;amp;1");
                    //ファイル出力
                    $savename =strstr($video,'.',true);
                    $check = exec("mv ".$tmpDir."/".$tmpname.".mp4 "."\"".$videoDir."/psvita/".$savename."(ReEncode 1280x720 x264 aac).mp4\" &amp;gt;&amp;gt; /var/log/mvlog 2&amp;gt;&amp;amp;1");
                    $check = exec("mv ".$videoDir."/".$video." ".$videoDir."/[originalFiles]/ &amp;gt;&amp;gt; /var/log/mvlog 2&amp;gt;&amp;amp;1");
                    //掃除
                    $check = exec("rm ".$tmpDir."/".$tmpname.".264 ".$tmpDir."/".$tmpname.".aac ".$tmpDir."/".$tmpname.".mp4 &amp;gt;&amp;gt; /var/log/rmlog 2&amp;gt;&amp;amp;1");
                }else{
#                   non encode
#                   printf("Another\nhigh=%d,width=%d,aspect=%f \n",$h,$w,$asp);    //チェック用
                    //Randomファイル名生成
                    $tmpname = getRandomStr(10);
             
                    //音声分離
                    $check = exec("/usr/bin/ffmpeg -i \"".$videoDir."/".$video."\" -y -vn -acodec libfaac -ac 2 -ar 48000 -ab 256k \"".$tmpDir."/".$tmpname.".aac\" &amp;gt; acodeclog 2&amp;gt;&amp;amp;1");
                    //1パス目encode
                    $check = exec("/usr/bin/ffmpeg -i \"".$videoDir."/".$video."\" -f mp4 -y -threads 0 -b 2048k -bt 2048k -s ".$w."x".$h." -r 30000/1001 -aspect 4:3 -vcodec libx264 -fpre /usr/share/ffmpeg/1pass.ffpreset -an -pass 1 -passlogfile x264log \"".$tmpDir."/".$tmpname.".264\" &amp;gt; /var/log/1passlog 2&amp;gt;&amp;amp;1");
                    //2パス目encode
                    $check = exec("/usr/bin/ffmpeg -i \"".$videoDir."/".$video."\" -f mp4 -y -threads 0 -b 2048k -bt 2048k -s ".$w."x".$h." -r 30000/1001 -aspect 4:3 -vcodec libx264 -fpre /usr/share/ffmpeg/2pass.ffpreset -an -pass 2 -passlogfile x264log \"".$tmpDir."/".$tmpname.".264\" &amp;gt; /var/log/2passlog 2&amp;gt;&amp;amp;1");
                    //音声結合
                    $check = exec("MP4Box -mpeg4 -fps 29.9700298309 -add \"".$tmpDir."/".$tmpname.".264\" -add \"".$tmpDir."/".$tmpname.".aac\" -new \"".$tmpDir."/".$tmpname.".mp4\" &amp;gt; /var/log/mp4boxlog 2&amp;gt;&amp;amp;1");
                    //ファイル出力
                    $savename =strstr($video,'.',true);
                    $check = exec("mv ".$tmpDir."/".$tmpname.".mp4 "."\"".$videoDir."/psvita/".$savename."(ReEncode ".$w."x".$h." x264 aac).mp4\" &amp;gt;&amp;gt; /var/log/mvlog 2&amp;gt;&amp;amp;1");
                    $check = exec("mv ".$videoDir."/".$video." ".$videoDir."/[originalFiles]/ &amp;gt;&amp;gt; /var/log/mvlog 2&amp;gt;&amp;amp;1");
                    //掃除
                    $check = exec("rm ".$tmpDir."/".$tmpname.".264 ".$tmpDir."/".$tmpname.".aac ".$tmpDir."/".$tmpname.".mp4 &amp;gt;&amp;gt; /var/log/rmlog 2&amp;gt;&amp;amp;1");
                 
                }
            } else {
                $errorMessage="Error don't has videoFrame ------ $video &amp;gt;&amp;gt; ".$videoDir."/aviErrer.txt";
                exec("echo $errorMessage &amp;gt; /var/datas/video/avierror.txt");
            }
            $loopcounter++; //ループカウンタを回す
 
#----------------------------------------------------------------------------------------------------------------#
#           .mpgの時
        elseif($exts == ".mpg"):
#           echo "find mpg \n";     //チェック用
##----------------------------------------------------------------------------------------------------------------#
#           .tsの時
        elseif($exts == ".ts"):
#           echo "find ts \n";      //チェック用
#----------------------------------------------------------------------------------------------------------------#
#           .m2tの時
        elseif($exts == ".m2t"):
#           echo "find m2t \n";     //チェック用
            $tmpname = getRandomStr(10);
             
#           コピー用の名前を準備
#           元の名前:GR29_アニメタイトル 第111話[録画日時]「ほげほげ」(番組名).m2t
            if(strpbrk($video,'.') != false):   
                $clipnametmp1 = mb_strrchr($video,'[',true);        //GR29_アニメタイトル 第111話「ほげほげ」
                $clipnametmp2 = strtr($clipnametmp1, "_"," ");  //GR29 アニメタイトル 第111話「ほげほげ」
                $clipname = mb_ereg_replace( "(.*)話(.*)","\\1話 \\2",$clipnametmp2); //GR29_アニメタイトル 第111話[録画日時] 「ほげほげ」
                $psvitaname =mb_strrchr($video,'(',true);       //GR29_アニメタイトル 第111話[録画日時]「ほげほげ」
                $savename =mb_strrchr($video,'(',true);         //GR29_アニメタイトル 第111話[録画日時]「ほげほげ」
                mb_ereg('([A-Z]{2}[0-9]{2,3}\_[^\s|\[|「|#|【|▽]+).*',$video,$savefoldername);        //$savefoldername[1]=GR29_アニメタイトル
                 
                 
#               元の名前:GR29_アニメタイトル 第111話[録画日時]「ほげほげ」.m2t
                if(strstr($video,'(',true) == false):       
                    $psvitaname =mb_strrchr($video,'.',true);       //GR29_アニメタイトル 第111話[録画日時]「ほげほげ」
                    $savename =mb_strrchr($video,'.',true);         //GR29_アニメタイトル 第111話[録画日時]「ほげほげ」
                    mb_ereg('([A-Z]{2}[0-9]{2,3}\_[^\s|\[|「|#|【|▽]+).*',$video,$savefoldername);        //$savefoldername[1]=GR29_アニメタイトル
                endif;
                 
            else:
#           元の名前:GR29_アニメタイトル 第111話[録画日時]「ほげほげ」(番組名)
                $clipnametmp1 = mb_strrchr($video,'[',true);        //GR29_アニメタイトル 第111話「ほげほげ」
                $clipnametmp2 = strtr($clipnametmp1, "_"," ");  //GR29 アニメタイトル 第111話「ほげほげ」
                $clipname = mb_ereg_replace( "(.*)話(.*)","\\1話 \\2",$clipnametmp2); //GR29_アニメタイトル 第111話[録画日時] 「ほげほげ」
                $psvitaname =$video;        //GR29_アニメタイトル 第111話[録画日時]
                $savename =$video;          //GR29_アニメタイトル 第111話[録画日時]
                mb_ereg('([A-Z]{2}[0-9]{2,3}\_[^\s|\[|「|#|【|▽]+).*',$video,$savefoldername);        //$savefoldername[1]=GR29_アニメタイトル
            endif;
             
#           encodeの時に使うFPSの詳細は以下
#           60000/1001=59.9400596619
#           30000/1001=29.9700298309
 
            $check = exec("/usr/bin/ffmpeg -i \"".$videoDir."/".$video."\" -y -vn -acodec copy ".$tmpDir."/".$tmpname.".aac "."&amp;gt; acodeclog 2&amp;gt;&amp;amp;1");
             
            $check = exec("/usr/bin/ffmpeg -i \"".$videoDir."/".$video."\" -f h264 -deinterlace -y -threads 3 -b 2048k -bt 2048k -s 1280x720 -r 60000/1001 -aspect 16:9 -vcodec libx264 -fpre /usr/share/ffmpeg/1pass.ffpreset -an -pass 1 -passlogfile x264log ".$tmpDir."/".$tmpname.".264 "."&amp;gt; /var/log/1passlog 2&amp;gt;&amp;amp;1");
             
            $check = exec("/usr/bin/ffmpeg -i \"".$videoDir."/".$video."\" -f h264 -deinterlace -y -threads 3 -b 2048k -bt 2048k -s 1280x720 -r 60000/1001 -aspect 16:9 -vcodec libx264 -fpre /usr/share/ffmpeg/2pass.ffpreset -an -pass 2 -passlogfile x264log ".$tmpDir."/".$tmpname.".264 "."&amp;gt; /var/log/2passlog 2&amp;gt;&amp;amp;1");
 
#           MP4Boxは2バイト文字や,特殊文字が入ると処理できないので,名前の変更はそのあとのcpで対応する.
            $check = exec("/usr/bin/MP4Box -mpeg4 -fps 59.9400596619 -add ".$tmpDir."/".$tmpname.".264 "."-add ".$tmpDir."/".$tmpname.".aac "."-new ".$tmpDir."/".$tmpname.".mp4 "."&amp;gt; /var/log/mp4boxlog 2&amp;gt;&amp;amp;1");
             
#           完成ファイルをフォルダに移動する.
#           $check = exec("mv ".$tmpDir."/".$tmpname.".mp4 "."\"".$videoDir."/[encodedFiles]/".$savename."(1280x720 x264 aac).mp4\" &amp;gt;&amp;gt; /var/log/cplog 2&amp;gt;&amp;amp;1");
            //上記は本当はmvなんだが,以下の挙動を見るために,cpに変更している        2014年5月14日
            //2014年5月20日に確認したところ,正常に動いて居るみたいなので,上記のコマンドをcpからmvに戻した.
            //2014年5月31日:上記のコマンドは作業フォルダから記録フォルダに移動するコマンドなので,コメントアウトし,次に出てくるコマンドで移動しなければならない
 
            //フォルダを造ってその中に放り込む      2014年5月14日追記
            if(file_exists($savefoldername[1])):
                //存在するのでなにもしない
            else:
                $tmpdirpass=$videoDir."/[encodedFiles]/".$savefoldername[1]."/";
                mkdir($tmpdirpass,0777);
                chown($tmpdirpass,"nobody");
                chgrp($tmpdirpass,"nogroup");
            endif;
            $check = exec("cp ".$tmpDir."/".$tmpname.".mp4 "."\"".$tmpdirpass."/".$savename."(1280x720 x264 aac).mp4\" &amp;gt;&amp;gt; /var/log/cplog 2&amp;gt;&amp;amp;1");
            //2014年5月14日追記ここまで
             
            //clipbucketに登録
#           $check = exec("cp \"".$videoDir."/[encodedFiles]/".$savename."(1280x720 x264 aac).mp4\""." \"/var/datas/clipb/files/mass_uploads/".$clipname.".mp4\" &amp;gt;&amp;gt; /var/log/cplog 2&amp;gt;&amp;amp;1");
            //掃除
            $check = exec("rm ".$tmpDir."/".$tmpname.".264 ".$tmpDir."/".$tmpname.".aac ".$tmpDir."/".$tmpname.".mp4 &amp;gt;&amp;gt; /var/log/rmlog 2&amp;gt;&amp;amp;1");
 
#           持ち歩き用のencodeパラメータで再エンコード.
#           
            $check = exec("/usr/bin/ffmpeg -i \"".$videoDir."/".$video."\" -y -vn -acodec copy ".$tmpDir."/".$tmpname.".aac "."&amp;gt; acodeclog 2&amp;gt;&amp;amp;1");
 
            $check = exec("/usr/bin/ffmpeg -i \"".$videoDir."/".$video."\" -f h264 -deinterlace -y -threads 3 -b 2048k -bt 2048k -s 1280x720 -r 30000/1001 -aspect 16:9 -vcodec libx264 -fpre /usr/share/ffmpeg/psvita-1pass.ffpreset -an -pass 1 -passlogfile x264log ".$tmpDir."/".$tmpname.".264 "."&amp;gt; /var/log/psvita1passlog 2&amp;gt;&amp;amp;1");
             
            $check = exec("/usr/bin/ffmpeg -i \"".$videoDir."/".$video."\" -f h264 -deinterlace -y -threads 3 -b 2048k -bt 2048k -s 1280x720 -r 30000/1001 -aspect 16:9 -vcodec libx264 -fpre /usr/share/ffmpeg/psvita-2pass.ffpreset -an -pass 2 -passlogfile x264log ".$tmpDir."/".$tmpname.".264 "."&amp;gt; /var/log/psvita2passlog 2&amp;gt;&amp;amp;1");
             
            $check = exec("/usr/bin/MP4Box -mpeg4 -fps 29.9700298309 -add ".$tmpDir."/".$tmpname.".264 "."-add ".$tmpDir."/".$tmpname.".aac "."-new ".$tmpDir."/".$tmpname.".mp4 "."&amp;gt; /var/log/psvitamp4boxlog 2&amp;gt;&amp;amp;1");
             
            $check = exec("cp ".$tmpDir."/".$tmpname.".mp4 "."\"".$videoDir."/psvita/".$psvitaname.".mp4\" &amp;gt;&amp;gt; /var/log/cplog 2&amp;gt;&amp;amp;1");
            //掃除
            $check = exec("rm ".$tmpDir."/".$tmpname.".264 ".$tmpDir."/".$tmpname.".aac ".$tmpDir."/".$tmpname.".mp4 &amp;gt;&amp;gt; /var/log/rmlog 2&amp;gt;&amp;amp;1");
             
#           コマンド:mv "/var/datas/video/hogehoge.m2t" /var/datas/video/.recycle
             
            $check = exec("mv \"".$videoDir."/".$video."\" ".$videoDir."/.recycle &amp;gt;&amp;gt; /var/log/mvlog 2&amp;gt;&amp;amp;1");
 
            $loopcounter++; //ループカウンタを回す
 
 
#----------------------------------------------------------------------------------------------------------------#
#           .wmvの時
        elseif($exts == ".wmv"):
#           echo "find wmv \n";         //チェック用
#----------------------------------------------------------------------------------------------------------------#
#           .txtの時
        elseif($exts == ".txt"):
#           echo "find txt \n";         //チェック用
#----------------------------------------------------------------------------------------------------------------#
#           その他のファイル
        else:
#           echo "Another files?\n";    //チェック用
        endif;
     
    }
         
//チェック用
/*  $i=0;
    foreach($medias as $value){
        printf("medias[%d] = %s \n", $i, $value);
        $i++;
    }
*/ 
     
    function getRandomStr($length){
#       使用する文字
        $char = '1234567890abcdefghijklmnopqrstuvwxyz';
        $charlen = mb_strlen($char);
        $result = "";
        for($i=1;$i&amp;lt;=$length;$i++){ $index = mt_rand(0, $charlen - 1); $result .= mb_substr($char, $index, 1); } return $result; } function getDirFiles($dirPath){ if($handle = opendir($dirPath)){ while(false !== ($file = readdir($handle))){ $fullPath = $dirPath.'/'.$file; if(!is_dir($fullPath) &amp;amp;&amp;amp; $file != "CVS" &amp;amp;&amp;amp; $file != "." &amp;amp;&amp;amp; $file != ".."){ # $filesArr[] = trim($fullPath); $filesArr[] = trim($file); } } closedir($handle); } return $filesArr; } // ロックファイルの削除 unlink( $lock_file ); ?>

bashでviを使う

.bashrcに以下を追加

# Ser vi mode
set -o vi

aliasを追加する

.bashrcに次の書式で追加する


alias ll='ls -alF'

システムバックアップ(duplicity)

#! /bin/bash
duplicity incremental --no-encryption \ #フルバックアップはincrementalをfullbackupにするだけ、incrementalは差分
--archive-dir /var/datas/clipb/archive \
--exclude /dev \
--exclude /mnt \
--exclude /tmp \
--exclude /proc \
--exclude /sys \
--exclude /run \
--exclude /var/run \
--exclude /var/lock \
--exclude /var/datas/clipb \
/ file:///var/datas/clipb/backupdata

更新cron

#duplicityでフルバックアップしているのが前提.
#3 9 * * 3 root /usr/local/sbin/incrementalbackup.sh > /dev/null 2>&1
10 10 * * 7 root /usr/local/sbin/incrementalbackup.sh > /var/log/incrementalbackuplog 2>&1
||2014年4月19日|11:09 PM|コメント(0)