Linux – スクリプト関連

Linuxに関するメモページ.


更新cron

</p>
<p>*/20 * * * * root /usr/local/sbin/ipchange.sh &amp;amp;gt; /var/log/ipchangelog_errer 2&amp;amp;gt;&amp;amp;amp;1</p>
<p>

空フォルダ削除

<br />
#!/bin/bash&amp;amp;lt;/pre&amp;amp;gt;<br />
&amp;amp;lt;pre&amp;amp;gt;folder=&quot;/var/www/epgrec/video/&quot;</p>
<p>sudo find $folder -type d -empty -delete</p>
<p>

更新crom

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

ffmpegエンコード(2012年頃)

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

bashでviを使う

.bashrcに以下を追加

<br />
# Ser vi mode<br />
set -o vi<br />

aliasを追加する

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

</p>
<p>alias ll='ls -alF'</p>
<p>

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

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

更新cron

<br />
#duplicityでフルバックアップしているのが前提.<br />
#3 9 * * 3 root /usr/local/sbin/incrementalbackup.sh &gt; /dev/null 2&gt;&amp;1<br />
10 10 * * 7 root /usr/local/sbin/incrementalbackup.sh &gt; /var/log/incrementalbackuplog 2&gt;&amp;1<br />

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

徒然なるままに書いた駄文日記