sedコマンドの最新版をダウンロードする
今回は、sedコマンドのダウンロード方法について紹介する。
ある業務で「-z」オプションを使用すれば効率よくいくと考え、「sed -z」にて実行しようとした。しかしエラー。原因は、ver4.2.1では「-z」オプションがまだリリースされていなかったからだ。
ver4.2.2にてzオプションはリリースされているが、どうせ古いバージョンで更新するなら、最新版にしてしまえと思い、最新版にすることにした。
以下、ダウンロードする際のコマンドである。
1.GNUプロジェクトのページから対象ファイルをwgetでダウンロード
$ wget https://ftp.gnu.org/gnu/sed/sed-4.5.tar.xz
2.ダウンロードしたファイルを解凍する
$ xz -dc sed-4.5.tar.xz | tar xfv -
3.回答によって生成されたディレクトリに移動
$ cd sed-4.5
4.Makefileファイルの生成(環境の検査の実施)
$ ./configure
※ここで、エラーが出た場合、原因となっているコマンドをyum等でインストールする。私の場合、gccが足りなかった。
5.バイナリの生成
$ make
6.システムへの書き込み実行
$ make install
うまくいけば、/usr/local/binにsedがインストールされているはずだ。
これを所定の位置に移動したりして、sedコマンドを打てばOKだ!
アップデートできたかの確認は、
$ sed --version sed (GNU sed) 4.5 Copyright (C) 2018 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. 作者 Jay Fenlason、 Tom Lord、 Ken Pizzini、 および Paolo Bonzini。 GNU sed home page: <https://www.gnu.org/software/sed/>. General help using GNU software: <https://www.gnu.org/gethelp/>. E-mail bug reports to: <bug-sed@gnu.org>.
でOKだ!
【CentOS7】nkf コマンドのインストール方法
久しぶりに更新します。
最近、懸賞にハマっていて、プライベートはほぼ懸賞です。。(笑)
(懸賞ブログも始めたいと思ってたりもしますw)
さて、今回はnkfコマンドのインストール方法について書き留めます。
yumにてインストールしようと思ったのですが、以下のようなエラーが出てしましました。
# yum install -y nkf 読み込んだプラグイン:fastestmirror Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast base | 3.6 kB 00:00 extras | 3.4 kB 00:00 remi-safe | 2.9 kB 00:00 updates | 3.4 kB 00:00 (1/3): extras/7/x86_64/primary_db | 204 kB 00:00 (2/3): remi-safe/primary_db | 1.3 MB 00:00 (3/3): updates/7/x86_64/primary_db | 6.0 MB 00:00 Determining fastest mirrors * base: ftp.iij.ad.jp * extras: ftp.iij.ad.jp * remi-safe: ftp.riken.jp * updates: ftp.iij.ad.jp パッケージ nkf は利用できません。 エラー: 何もしません
「パッケージ nkf は利用できません。」と怒られてしまいました。
理由は、デフォルトのリポジトリにないからです。
ローカルのリポジトリにはないので、どこからか取得しなくてはなりません。
以下のコマンドでインストールすることができます。
# yum localinstall -y http://mirror.centos.org/centos/6/os/x86_64/Packages/nkf-2.0.8b-6.2.el6.x86_64.rpm
【SQL Server】全テーブルのデータ件数を一括取得する
全テーブルの件数をリストで一括出力するSQL
SELECT OBJ.name AS TableName, IND.rows
FROM sys.objects AS OBJ
JOIN sys.sysindexes AS IND
ON OBJ.object_id = IND.id AND IND.indid < 2
WHERE OBJ.type = 'U'
ORDER BY OBJ.name;
SSHコマンドでログインするときの奴
SSHコマンドで別サーバにファイルをコピーしたいとき、以下のようなコマンドを打つと思う。
ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -i /var/lib/jenkins/secrets/repos0.key" /tmp/hoge.txt XXX@XXXX.com:/tmp/
接続はできるのだが、以下のメッセージが出てきてややこしい。
Warning: Permanently added '' (RSA) to the list of known hosts.
LogLevelオプションを追加することで解消した。
ssh -o LogLevel=error -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -i /var/lib/jenkins/secrets/repos0.key" /tmp/hoge.txt XXX@XXXX.com:/tmp/
【PHP】休日を省いた日付処理
現在日付から4営業日後の日付を取得するロジックを作りました。
//本日から4営業日後の計算 $setbizDays = 4; //何営業日後かを設定 $offdays = array('Sat','Sun'); //土、日を配列に格納 $holidays = array('2018-03-21','2018-04-29','2018-04-30','2018-05-03','2018-05-04','2018-05-05','2018-07-16','2018-08-11','2018-09-17','2018-09-23','2018-09-24','2018-10-08','2018-11-03','2018-11-23','2018-12-23','2018-12-24'); //休日を配列に格納 $fourbizDays = date("Y-m-d"); //現在日付を設定 $fourbizDaystmp = date("Y-m-d"); //処理用に現在日付を設定 $i = 1; $j = $setbizDays; //現在日付から1日単位で休日かを判定する while($i <= $j){ $tmp = strtotime($fourbizDaystmp . " + $i day "); if(in_array(date("D", $tmp), $offdays) || in_array(date("Y-m-d", $tmp), $holidays)){ $i++; $j++; }else{ $i++; } $fourbizDays = date("Y-m-d", strtotime($fourbizDays . " + 1 day ")); }
あとは、$fourbizDaysを表示させるなり、煮るなり焼くなりすればOK!
【CentOS7】firewalldの設定
開発で使っているサーバから別のサーバへhttp接続をさせたいと思い、
telnetコマンドで接続を試したが、うまくいかなかった。
原因を探ったところ、どうやらfirewallが行く手を阻んでいるようだった。
firewall自体は落としたくなかったので、firewallにルールを追加することにした。
以下のコマンドでfirewallにルールを付与した。
$ firewall-cmd --direct --add-rule ipv4 filter OUTPUT 1 -m state --state NEW -d [ipアドレス] -m tcp -p tcp --dport 80 -j ACCEPT
http接続できるようになった。。
これで、json取得できる。。!(*´▽`*)