ラベル Linux の投稿を表示しています。 すべての投稿を表示
ラベル Linux の投稿を表示しています。 すべての投稿を表示

2024年12月21日土曜日

Linux コマンド: 特定日時以降のファイルとディレクトリを検索する

 例えば、2023年6月1日以降に更新されたファイルとディレクトリを検索するには、以下のようにします。

$ find /path/to/search -newermt "2023-06-01"


2024年5月11日土曜日

Linux findとgrepでファイル内文字列検索

# 現在のディレクトリ以下にある「xyz*」ファイル内に「aiueo」が含まれているものを検索する

$ find . -name 'xyz*' -type f -print0 | xargs -0 grep aiueo


# 現在のディレクトリ以下にあるphpファイル内に「aiueo」が含まれているものを検索する

$ find . -name '*.php' -print0 | xargs -0 grep aiueo


# /var/www/htmlディレクトリ以下にあるファイル内に「aiueo」が含まれているものを検索する

$ find /var/www/html -type f -print0 | xargs -0 grep aiueo


2023年2月7日火曜日

Ubuntuのアップデートとアップグレード

以下の順に、updateとupgradeを実行します。

$ sudo apt-get update

$ sudo apt-get upgrade

※apt-get updateは、有効なインストール可能なパッケージの一覧を更新します。

※apt-get upgradeは、有効なパッケージ一覧を元にインストール済みパッケージの更新を行います。

参考 https://www.sejuku.net/blog/85434


2021年2月24日水曜日

Linux: ディレクトリ内を再帰的にgrepする

grep -lr 検索文字列 /var/www/html

-r は再帰的に実行するためのオプション
-l はファイルだけを探索するオプション

ファイル名を指定したい場合は --include= オプションを使用します。

grep -lr 検索文字列 --include="*.html" /var/www/html


2017年6月23日金曜日

Linux ディレクトリ内のすべてのグループを変更するには

chgrp ファイルやディレクトリのグループを変更するコマンド


FLODERディレクトリ内のすべて(ファイルとディレクトリ)を、wheelグループにする
$ chgrp -R wheel FOLDER


FILEファイルのグループをwheelグループにする
$ chgrp wheel FILE

2017年6月22日木曜日

Ubuntu 16.04: SambaでLinuxとWindows間のファイル共有

Ubuntu 16.04: sambaをインストールしてWindows 10とファイル共有する - Narrow Escape

以上を参考にしてできましたが、少しつまずいたので補足です。


1.sambaのインストール
$ sudo apt-get install -y samba

2.pdbeditでsambaへアクセスできるユーザを追加します。
$ sudo pdbedit -a EXAMPLEUSER
new password:
retype new password:

※注意:すでに存在してるユーザー名EXAMPLEUSERを指定します。

3. /etc/samba/smb.confの設定

設定1.ホームディレクトリ共有
以下の設定では、pdbeditで作成したユーザのホームディレクトリにアクセスできるようになります。

/etc/samba/smb.conf 内で以下部分のコメントを外す

;[homes]
;   comment = Home Directories
;   browseable = no
 ↓
[homes]
   comment = Home Directories
   browseable = no

そして

 # By default, the home directories are exported read-only. Change the
 # next parameter to 'no' if you want to be able to write to them.
;   read only = yes
 ↓
   read only = no

そして

 # This might need tweaking when using external authentication schemes
;   valid users = %S
 ↓
   valid users = %S


あるいは、次の設定もできます。

設定2: 全ユーザ共有ディレクトリ
以下の設定では、pdbeditで追加したユーザでディレクトリを共有できます。
以下の設定では、shareという名前のディレクトリが共有されるようになる。ユーザー名とパスワードが要求される。

/etc/samba/smb.conf 内

 #======================= Share Definitions =======================

[share] 
   comment = Share directory
   path = /var/lib/share  #特定のディレクトリを指定します
   read only = no
   guest only = no
   guest ok = no
   share modes = yes

 # Un-comment the following (and tweak the other settings below to
 # suit)
 # to enable the default home directory shares. This will share each
 # user's home directory as \\server\username


4.設定完了後、systemctlでsmbdとnmbdを再起動します。
$ sudo systemctl restart smbd nmbd

5.共有ディレクトリのアクセス権は0777にします。
$ sudo mkdir /var/lib/share
$ sudo chmod 0777 /var/lib/share


2017年5月2日火曜日

MySQLが落ちる原因

AWSの場合、SWAP領域が0が原因

AmazonAWSで、MySQL がよく落ちる? そんな時はSWAP領域をチェック! - Qiita

PC便利帳: Linux スワップファイルの追加
http://tipspc.blogspot.jp/2008/09/linux.html

2017年4月27日木曜日

2017年4月22日土曜日

Amaxon Linux上のownCloudでLibreOfficeを使う

ownCloud Version 9.1.4
LibreOffice Version 5.3.2

すでにownCloudがインストールされているとします。

以下を参考にLibreOfficeをインストールします。

ppt->pdf の変換をAmazon Linux上で実施する - # exec new-self
http://kinokinoppy.hateblo.jp/entry/2015/07/31/015147

◆つまづいた点1
2017-04-22現在、Linux用ダウンロード先は以下
http://download.documentfoundation.org/libreoffice/stable/5.3.2/rpm/x86_64/LibreOffice_5.3.2_Linux_x86-64_rpm.tar.gz

◆つまづいた点2
libcairo.so.2 がないとエラーが出る場合は、

# sudo yum install cairo-devel libjpeg-turbo-devel giflib-devel -y

を実行します。

参照: Installation Amazon Linux AMI (EC2) · Automattic/node-canvas Wiki


そして、

whereis libreoffice でLibreOfficeのパス(私の場合:/usr/bin/libreoffice5.3)を確認し、

owncloudのconfig.phpに

'preview_libreoffice_path' => '/usr/bin/libreoffice5.3',

を追記します。

無事、MS Officeファイルのプレビューができるようになりました。

また、ドキュメント(Document)というアプリでも簡易編集ができるようになりました。

ownCloud の管理→ドキュメントで「ローカル」をチェックし「適用してテスト」をクリックしてエラーが出なければ使用できます。




ただ、簡単なテキスト編集のみで、あまり複雑な編集はできない。
また、編集すると勝手に保存されてしまい、元にもどすのに難儀します。これは設定で変更できるのだろうか??


参考
ownCloudにドキュメント編集機能を実装してみようと思った話 - Qiita
http://qiita.com/inductor/items/5dda58ad52f7951ecd34


Amazon Linux上でOfficeファイルをPDF変換

LibreOfficeでPDF変換をします。

Amazon Linux上にLibreOfficeのインストール方法は以下を参考に。

ppt->pdf の変換をAmazon Linux上で実施する - # exec new-self
http://kinokinoppy.hateblo.jp/entry/2015/07/31/015147

2017-04-22時点

Linux用ダウンロード先は以下
http://download.documentfoundation.org/libreoffice/stable/5.3.2/rpm/x86_64/LibreOffice_5.3.2_Linux_x86-64_rpm.tar.gz


libcairo.so.2 がないとエラーが出る場合は、

$ sudo yum install cairo-devel libjpeg-turbo-devel giflib-devel -y

を実行します。

参照: Installation Amazon Linux AMI (EC2) · Automattic/node-canvas Wiki


変換コマンドは以下(赤文字部分は適宜変更してください)

$ /opt/libreoffice5.3/program/soffice.bin --headless --convert-to pdf test.docx

そうすると、test.docx と同一ディレクトリに test.pdf が出力されます。

しかし、日本語フォントが化けていたので、以下のようにしました。

/usr/share/fonts/japanese/OpenType にGoogleのNotoSansフォントを保存。

そして、以下を実行。
$ sudo fc-cache -fv

無事、PDFに日本語が表示されました。

参考
ImageMagickとlibreofficeを使ったOffice->PDF->PNG変換について(コマンドライン編)
http://qiita.com/motomiya326/items/c16038b670927468b89b

Google Noto Fonts
https://www.google.com/get/noto/help/cjk/





2017年4月20日木曜日

Linux上でシェルスクリプトを作った時のメモ

1."期待していないファイルの終了" というエラーになる。

対応→改行コードをLFにすればOK。


2.$ echo XYZ | md5sum とすると、XYZ+改行 のハッシュ値になってしまう。

$ echo -n XYZ | md5sum のように -n を付けて、XYZのハッシュ値を得る。

3.ファイルの内容を1行ずつ処理

cat と read コマンドを利用する方法

cat ファイル名 | while read 変数名
do
    変数を使った処理
done


以下の例 read-each-line.sh では、ファイルの内容に、行数をつけて表示します。
ファイルは引数として渡します。

#!/bin/bash
numLine=1
cat $1 | while read line
do
    echo $numLine: $line # 出力
    numLine=$((numLine + 1)) # 行数を1増やす
done



参考:[Bash] ファイルを一行ずつ処理する方法

2017年4月14日金曜日

日本語を含むZIPファイルを文字化けせず解凍する方法 - Qiita

http://qiita.com/hoo89@github/items/46dcd8134061c392772f


Mac, LinuxでZIPされたファイルをWindowsで開く場合

Windows標準の解凍機能を用いる場合、修正プログラム(
http://support.microsoft.com/kb/2704299/ja )を使うことでWindows 7 または
Windows Server 2008 R2では文字化けせずに解凍できるようになります。
Windows 8以降は何もせずとも解凍できるようになっているようです。

2017年4月12日水曜日

Linux: Apacheの実行ユーザーを変更する

vi等のエディタでhttpd.confを開きます。

$ vi /etc/httpd/conf/httpd.conf

User root
Group apache

↓ 該当箇所を変更し保存します。

User newuser
Group apache


Apacheを再起動すれば完了です。

$ /etc/rc.d/init.d/httpd2 restart


Apacheの実行ユーザー(起動ユーザー)を変更する方法 | Step On Board
http://www.lesstep.jp/step_on_board/apache/346/

Linux: Basic認証設定のしかた

<環境>
CentOS, Amazon Linux
Apache 2

1. .htpasswdファイルの作成
以下のコマンドで現在のディレクトリ内にパスワード設定ファイル(.htpasswd)を作成します。

$ htpasswd -c -b .htpasswd ユーザ名 パスワード

Options
-c : 新しいパスワードファイルを作成する。既存ファイルがあった場合は上書きされる。
-b : パスワードを対話式ではなくコマンドライン引数として入力できるようにする。

2. .htaccessファイルの作成

<.htaccess記述内容>
AuthType Basic
AuthName "Input your ID and Password."
AuthUserFile /var/www/html/testsite/.htpasswd
require valid-user

※.htpasswdファイルのフルパスを記述します。

以上です。

追記

httpd.confに記述する場合

エディタ(vi等)でApacheの設定ファイル /etc/httpd/conf/httpd.conf を開きます。

vi /etc/httpd/conf/httpd.conf

最終行に下記を記述してください。

<Directory "/var/www/phpMyAdmin/">
      AuthUserFile /etc/httpd/conf/.htpasswd
      AuthGroupFile /dev/null
      AuthName "Basic Auth"
      AuthType Basic
      Require valid-user
</Directory>

上記例では phpMyAdmin にBASIC認証を設定しました。

最後に、Apacheを再起動してください。

/etc/init.d/httpd restart

以上です。


ownCloudとAWS S3の連携

以下の後半、「AmazonS3 と ownCloudの連携」を参考にしました。

無制限ストレージ with ownCloud and Amazon S3
http://qiita.com/ukitiyan/items/481f380502a462a2af69

AIMのポリシー
AIMユーザー demo-ownCloud を作成しアクセス権限を設定する。
{
    "Version": "2012-10-17",
    "Statement": [
    {
      "Action": [
        "s3:ListAllMyBuckets"
      ],
      "Effect": "Allow",
      "Resource": "arn:aws:s3:::*"
    },
    {
      "Action": "s3:*",
      "Effect": "Allow",
      "Resource": ["arn:aws:s3:::demo-owncloud","arn:aws:s3:::demo-owncloud/*"]
    }
  ]
}

※Versionがないとエラーになるので、"Version": "2012-10-17", を追加した。
※S3のバケット名とIAMユーザー名を同じにしないと、ownCloudからS3にフォルダ・ファイルが作成できなかった。(Amazon Linux上のownCloud9の場合)

さらに、このS3バケットをウェブ公開するには

1.S3 demo-ownCloud バケット→プロパティ→Static Website Hosting で
「このバケットを使用してウェブサイトをホストする」をチェック

2.S3 demo-ownCloud バケット→アクセス権限→バケットポリシー
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "PublicReadForGetBucketObjects",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::demo-ownCloud/*"
        }
    ]
}

を設定します。

2017年4月5日水曜日

PHPでファイルのパーミッションを変更する

パーミッションを変更したいが、レンタルサーバー等の理由でrootアクセスできない場合、PHPのchmod関数でパーミッションを変更すればよい。

PHPでのファイル書き込みとパーミッションエラー解決法
http://www.flatflag.nir87.com/fwrite-792

<?php
    // パーミッションを666へ変更する。666の前に0が必要。
    chmod ('hoge/hoge.php', 0666);
?>


※さらにchmod関数も使えなかった場合
PHP chmodでパーミッション変更できない場合 - Digitarhythm

<?php
    // 使用しているサーバーでchmodコマンドが使えることが前提
    system('chmod 666 ./hoge/hoge.php');exit;
?>

2017年3月28日火曜日

Linux: ファイル名をワイルドカードで指定してgrepする方法

例:現在のディレクトリ以下で、拡張子confのファイルのうち、XYZ を含む行を検索する。

$ find . -name "*.conf" | xargs grep XYZ


2017年3月23日木曜日

Linux ユーザー・グループの確認・変更

ユーザー情報一覧
# less /etc/passwd

グループ情報一覧
# less /etc/group

ユーザーが参加しているグループの確認
# id [ユーザー名]


ユーザーが所属しているグループ確認
# groups USER
USERNAME: USER

ユーザーをwheelグループに追加
# usermod -aG wheel USER
# groups USER
USER: GROUP wheel

※ -aを忘れるとグループに追加されるのではなく、所属するセカンダリグループが置き換えられてしまいます。-aを付けずに紹介しているサイトもあるので注意しましょう。GROUPSは,で区切って複数指定できます。
-aをつけないと、グループ変更になる。

グループwheelにはどのユーザーが所属しているのか確認
# getent group wheel
wheel:x:10:USER,hoge_user,foo_user

※他のグループ追加方法
ユーザーをwheelグループに追加
gpasswd -a USER GROUP
間違えてグループが置き換えられることはないですが、コマンドが覚えづらいです。

グループを抜ける
# sudo gpasswd -d ユーザー名 グループ名


※sudoコマンドを利用できるグループ
CentOSでは、wheelグループ
Debianでは、sudoグループ
このグループにユーザーを追加するとsudoコマンドが使えるようになります。