2023/06/28

環境変数

環境変数

bash_profileはログイン時にのみ実行されます。
bashrcは対話モードのbashを起動する時に毎回実行されます。

# パス確認
which コマンド

# 環境変数引き継いでユーザー切り替え
su - ユーザー名

# 環境変数引き継がないでユーザー切り替え
su ユーザー名

2022/10/31

DockerComposeの書き方

# 環境変数
x-var1: &MYSQL_PASSWORD
  "文字列"
x-var2: &DATABASE
  "文字列"
x-var3: &DB_USER
  "文字列"
x-var4: &DB_PASSWORD
  "文字列"
# システム構成
services:
  db:
    build:
      context: .
      dockerfile: Dockerfile1
    #depends_on:
    volumes:
      - db_data:/var/lib/mysql
    # environment > env_file
    environment:
      MYSQL_ROOT_PASSWORD: *MYSQL_PASSWORD
      MYSQL_DATABASE: *DATABASE
      MYSQL_USER: *DB_USER
      MYSQL_PASSWORD: *DB_PASSWORD
    env_file:
      - ./db.env
    restart: always
    #ports:
  wordpress:
    build:
      context: .
      dockerfile: Dockerfile2
    depends_on:
      - db
    #volumes:
    # environment > env_file
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_USER: *DB_USER
      WORDPRESS_DB_PASSWORD: *DB_PASSWORD
    env_file:
      - ./wordpress.env
    restart: always
    ports:
      - "8080:80"
volumes:
  db_data:

2022/10/28

nvidia-container-toolkitインストール

# nvidia-container-toolkitインストール
## 参考文献
https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html
## インストール
sudo curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
sudo vi /etc/apt/sources.list.d/nvidia-container-toolkit.list
    deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://nvidia.github.io/libnvidia-container/stable/deb/$(ARCH) /
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit
## docker再構築
sudo nvidia-ctk runtime configure --runtime=docker
## 再起動
## 動作確認
### Windows11&WSLの場合
sudo service docker start
sudo docker run --rm --gpus all nvidia/cuda:11.0.3-base-ubuntu20.04 nvidia-smi
### それ以外の場合
sudo docker run --rm --gpus all nvidia/cuda:11.0.3-base-ubuntu20.04 nvidia-smi

Dockerfileの書き方

# イメージ名:タグ名
FROM nginx:1.21

# メタデータ
LABEL maintainer="Namae Myouzi <mail@example.com>"

# 実行ユーザー
USER root

# ディレクトリ移動
WORKDIR /

# ローカルファイルをコンテナ内にコピーする
## 設定ファイル
COPY ./default.conf /etc/nginx/conf.d/
## コンテンツ
COPY ./*.html /var/www/html/
## 証明書
COPY ./ssl /etc/nginx/ssl

# イメージ作成時に実行するコマンド
RUN \
  apt-get update \
  && apt-get upgrade -y \
  && apt-get autoremove -y

# コンテナ実行時に実行するコマンド
## 上書き不可
ENTRYPOINT ["/usr/bin/date"]
## 上書き可能
CMD ["/usr/bin/date"]

# ListenPort
EXPOSE 80 443

# HealthCheck
HEALTHCHECK \
  --interval=30s \
  --timeout=10s \
  --start-period=60s \
  --retries=2 \
  CMD curl -f http://localhost/ || exit 1

Dockerインストール

# Dockerインストール
## 参考文献
https://docs.docker.com/install/linux/docker-ce/ubuntu/
## ゴミ削除
sudo apt-get remove -y docker
sudo apt-get remove -y docker-engine
sudo apt-get remove -y docker.io
sudo apt-get remove -y containerd
sudo apt-get remove -y runc
## 依存関係インストール
sudo apt-get install -y ca-certificates
sudo apt-get install -y curl
sudo apt-get install -y gnupg
sudo apt-get install -y lsb-release
## インストール
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
sudo sh -c 'echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" >> /etc/apt/sources.list.d/docker.list'
sudo apt-get update
sudo apt-get install -y docker-ce
sudo apt-get install -y docker-ce-cli
sudo apt-get install -y containerd.io
sudo apt-get install -y docker-compose-plugin
## 動作確認
### Windows11&WSLの場合
sudo service docker start
sudo docker container run --rm hello-world
### それ以外の場合
sudo docker container run --rm hello-world
## sudoなしでdocker使いたい場合
sudo usermod -aG docker $USER
## バージョン確認
docker --version
docker compose version

# docker-image
## イメージ一覧
sudo docker image ls -a
sudo docker images -a
## コンテナからイメージ作成
sudo docker container commit コンテナID イメージ名:タグ名
sudo docker commit コンテナID イメージ名:タグ名
## Dockerfileからイメージ作成
sudo docker image build -f ./Dockerfile -t イメージ名:タグ名 .
sudo docker build -f ./Dockerfile -t イメージ名:タグ名 .
## イメージ削除
sudo docker image rm イメージID
sudo docker rmi イメージID

# docker-container
## コンテナ一覧
sudo docker container ls -a
sudo docker ps -a
## コンテナ情報
sudo docker container inspect コンテナID
sudo docker inspect コンテナID
## コンテナ起動
sudo docker container start コンテナID
sudo docker start コンテナID
## コンテナ停止
sudo docker container stop コンテナID
sudo docker stop コンテナID
## コンテナ削除
sudo docker container rm コンテナID
sudo docker rm コンテナID

# docker-network
## ネットワーク一覧
sudo docker network ls
## ネットワーク作成
sudo docker network create --subnet "10.5.0.0/16" --attachable ネットワーク名
## ネットワーク削除
sudo docker network rm ネットワークID

# docker-volume
## ストレージ一覧
sudo docker volume ls
## ストレージ作成
sudo docker volume create
## ストレージ削除
sudo docker volume rm
## 未使用データ削除
sudo docker volume prune

# docker共通
## ディスク使用量確認
sudo docker system df
## 未使用データ削除
sudo docker system prune
## リソースの使用状況確認
sudo docker container stats -a
sudo docker stats -a
## ログ確認
sudo docker container logs -t コンテナID
sudo docker logs -t コンテナID
## ログ
/var/lib/docker/containers/コンテナID/コンテナID-json

# イメージからコンテナ起動
sudo docker container run -it --name コンテナ名 -p ホストのポート番号:コンテナのポート番号 イメージ名:タグ名 ${SHELL}
sudo docker run -it --name コンテナ名 -p ホストのポート番号:コンテナのポート番号 イメージ名:タグ名 ${SHELL}
## コンテナから離脱
### コンテナ終了
exit
### コンテナ維持
「Ctrl+P」→「Ctrl+Q」
## コンテナに再接続
sudo docker container attach コンテナID
sudo docker attach コンテナID

# イメージからコンテナをバックグラウンド起動
sudo docker container run -itd --name コンテナ名 -p ホストのポート番号:コンテナのポート番号 イメージ名:タグ名
sudo docker run -itd --name コンテナ名 -p ホストのポート番号:コンテナのポート番号 イメージ名:タグ名
## イメージからコンテナをバックグラウンド起動かつ終了時自動削除
sudo docker container run -itd --rm --name コンテナ名 -p ホストのポート番号:コンテナのポート番号 イメージ名:タグ名
sudo docker run -itd --rm --name コンテナ名 -p ホストのポート番号:コンテナのポート番号 イメージ名:タグ名
## コンテナに接続
sudo docker container exec -it コンテナID ${SHELL}
sudo docker exec -it コンテナID ${SHELL}

# コンテナレジストリサーバー
## 認証情報
$HOME/.docker/config.json
## イメージへのタグ付け
sudo docker image tag イメージ名:タグ名 コンテナレジストリサーバー/イメージ名:タグ名
sudo docker tag イメージ名:タグ名 コンテナレジストリサーバー/イメージ名:タグ名
## イメージpull
sudo docker image pull コンテナレジストリサーバー/イメージ名:タグ名
sudo docker pull コンテナレジストリサーバー/イメージ名:タグ名
## イメージpush
sudo docker image push コンテナレジストリサーバー/イメージ名:タグ名
sudo docker push コンテナレジストリサーバー/イメージ名:タグ名

# DockerComposeでコンテナ起動
sudo docker compose -f ./compose.yaml up -d
## 状態確認
sudo docker compose ps -a
## コンテナ停止
sudo docker compose stop
## コンテナ削除
sudo docker compose rm
## 全削除(イメージ、コンテナ、ネットワーク)
sudo docker compose down --rmi all

2022/04/04

WSLインストール

WSLインストール

# WSL設定
## 場所
C:\Users\ユーザー名\.wslconfig
## 内容
[wsl2]
memory=10GB
processors=5
swap=5GB


# コマンドプロンプト
## インストール可能OS一覧
wsl --list --online
## インストール
wsl --install OS名
## アップグレード
wsl --update
## 再起動
wsl --shutdown
## バージョン確認
wsl --list --verbose
## アンインストール
wsl --unregister OS名


# WSL内
## 日本語化
sudo apt-get install -y language-pack-ja-base
sudo apt-get install -y language-pack-ja
sudo apt-get install -y ibus-kkc
sudo update-locale LANG=ja_JP.UTF8
exit


# 注意点
serviceは使えるが、systemctlは使えない

git操作

git操作

# git初期設定
sudo apt-get install -y git
ssh-keygen -t rsa -b 4096
>パスワード
ssh -T git@github.com

git config --global user.email "メールアドレス"
git config --global user.name "名前"


# GoogleSourceRepositories運用
## 初回
gcloud init
gcloud source repos clone レポジトリ名 --project=プロジェクトID
cd レポジトリ名


# GitHub運用
## 初回
git clone git@github.com:レポジトリ名.git
cd レポジトリ名
## 毎回
git switch master
git pull
git switch dev/開発ブランチ名
## 開発ブランチ作成
git switch --create dev/開発ブランチ名
git switch -c dev/開発ブランチ名
## 開発ブランチ参加
git switch --create dev/開発ブランチ名 origin/dev/開発ブランチ名
git switch -c dev/開発ブランチ名 origin/dev/開発ブランチ名
## add,update,fix
git add ファイル名
git commit --message "[コミット種別] バックログ番号 変更内容"
git push origin dev/開発ブランチ名

git add -A
git commit -m "[コミット種別] バックログ番号 変更内容"
git push origin dev/開発ブランチ名
## remove
git rm ファイル名
git commit --message "[remove] バックログ番号 変更内容"
git push origin dev/開発ブランチ名


# TIPS
## 状態確認
git status

## レポジトリ内の全ての変更を一括追加する
git add --all
git add -A
## レポジトリ内の全ての変更を一括追加する(新規追加ファイルは対象外)
git add --update
git add -u
## ディレクトリ内の全ての変更を一括追加する
git add .

## git add前のファイルの変更を戻す
git restore ファイル名
## git add後のファイルの変更を戻す
git restore --staged ファイル名
git restore -S ファイル名

## コミット番号を確認する
git log --oneline
git log --graph

## ファイルをコミット番号の状態にする
git restore --source コミット番号 ファイル名
git restore -s コミット番号 ファイル名
## ディレクトリ内をコミット番号の状態にする
git restore --source コミット番号 .
git restore -s コミット番号 .

## masterブランチにコミットしてしまった
git rebase 1個前のコミット番号
git switch --create dev/開発ブランチ名
git cherry-pick 該当コミット番号
git push origin dev/開発ブランチ名

## ローカルブランチ一覧
git branch
## リモートブランチ一覧
git branch --remotes
git branch -r
## ブランチ一覧
git branch --all
git branch -a

## マージ済みブランチの削除
git branch --delete dev/開発ブランチ名
git branch -d dev/開発ブランチ名
## マージされていないブランチの削除
git branch --delete --force dev/開発ブランチ名
git branch -D dev/開発ブランチ名

ワイルドカード

 ワイルドカード

*
任意の0文字以上の文字列

?
任意の1文字

[a-z]
英字の1文字

[0-9]
数字の1文字

[a,b,c]
「a,b,c」のどれか1文字

[^a-z]
英字以外の1文字

[^0-9]
数字以外の1文字

[^a,b,c]
「a,b,c」以外のどれか1文字

{abc,def,ghi}
「abc,def,ghi」のうちのどれか

.
カレントディレクトリ

./hoge
カレントディレクトリのhoge

find操作

find操作

# ディレクトリ内をワイルドカードを利用したファイル名で検索
find ディレクトリ名 -name ファイル名

# ディレクトリ内の日数にアクセスされたファイルを検索
find ディレクトリ名 -atime 日数

# ディレクトリ内の日数以内にアクセスされたファイルを検索
find ディレクトリ名 -atime -日数

# ディレクトリ内の日数以降にアクセスされたファイルを検索
find ディレクトリ名 -atime +日数

# ディレクトリ内の日数に更新されたファイルを検索
find ディレクトリ名 -mtime 日数

# ディレクトリ内の日数以内に更新されたファイルを検索
find ディレクトリ名 -mtime -日数

# ディレクトリ内の日数以降に更新されたファイルを検索
find ディレクトリ名 -mtime +日数

2022/03/31

オレオレ証明書

オレオレ証明書

# opensslインストール
sudo apt-get install -y openssl

# 秘密鍵作成
openssl genrsa -aes256 -out 証明書名.key 2048
>パスワード

# 秘密鍵からパスフレーズを削除
openssl rsa -in 証明書名.key -out 証明書名.key
>パスワード

# csr
openssl req -new -key 証明書名.key -out 証明書名.csr
>Country Name:JP
>State or Province Name:都道府県
>Locality Name:市区町村
>Organization Name:会社名
>Organizational Unit Name:組織名
>Common Name:ホスト名
>Email Address:メールアドレス

# crt
openssl x509 -in 証明書名.csr -out 証明書名.crt -req -signkey 証明書名.key -days 有効日数

# pfx
openssl pkcs12 -export -in 証明書名.crt -out 証明書名.pfx -inkey 証明書名.key
>パスワード
openssl pkcs12 -export -in 証明書名.crt -out 証明書名.pfx -inkey 証明書名.key -certfile 証明書名.cer
>パスワード

# 中間証明書とサーバー証明書の結合
cat サーバー証明書(crt) 中間CA証明書(cer) クロスルート証明書(cer) >> 結合証明書(pem)

2022/03/28

ディスクのメンテナンス

ディスクのメンテナンス

# ベーシックディスク
ミラーリングできない

# ダイナミックディスク
ミラーリングできる
## 異形式状態のダイナミックディスクへの対応
形式の異なるディスクのインポート

2021/10/11

ディスクのメンテナンス

ディスクのメンテナンス

# コマンドについて
fdisk  古い
parted  推奨

# ディスク拡張
## ファイルシステムを確認
df -h
## 拡張したディスクを確認
sudo parted -l
## 拡張したディスクの状態を確認
sudo parted /dev/sda
(parted) p free
## パーティションを拡張
(parted) resizepart 2
(parted) p free
(parted) q
## ファイルシステムを拡張
sudo resize2fs /dev/sda2
df -h

# ディスク追加
## ファイルシステムを確認
df -h
## 追加したディスクを確認
sudo parted -l
## 追加したディスクの状態を確認
sudo parted /dev/sdb
(parted) p free
## パーティションを作成
(parted) mklabel gpt
(parted) unit TB
(parted) mkpart primary 0.00TB 4.00TB
(parted) p free
(parted) q
## ファイルシステムを作成
sudo mkfs.ext4 /dev/sdb1
## マウントポイントを作成
sudo mkdir /mnt/data
## UUIDを確認する
ls -l /dev/disk/by-uuid/
## 起動時自動マウントを設定
sudo vi /etc/fstab
  UUID=hogehoge  /mnt/data  ext4  defaults  0  0
sudo mount -a

# デフラグ
## 検査
sudo e4defrag -c ディレクトリ名
## 実行
sudo e4defrag ディレクトリ名

2021/07/07

AzureCLIインストール

AzureCLIインストール

# 最新化
sudo apt-get update
sudo apt-get upgrade -y
sudo apt-get autoremove -y

# Microsoft
## 鍵追加
sudo wget -q -O - https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg
sudo install -o root -g root -m 644 packages.microsoft.gpg /etc/apt/trusted.gpg.d/
sudo rm -rf packages.microsoft.gpg

# VSCode
## 公式リンク
https://code.visualstudio.com/docs/setup/linux
## パッケージソース追加
sudo sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/code stable main" > /etc/apt/sources.list.d/vscode.list'
sudo apt-get update
## インストール
sudo apt-get install -y code

# AzureCLI
## 公式リンク
https://docs.microsoft.com/ja-jp/cli/azure/install-azure-cli-linux?pivots=apt
## パッケージソース追加
sudo sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/azure-cli/ focal main" > /etc/apt/sources.list.d/azure-cli.list'
sudo apt-get update
## インストール
sudo apt-get install -y azure-cli
## アップグレード
az upgrade
## Azureログイン
az login
## Azureログアウト
az logout

2021/02/06

GoogleCloudSDKインストール

GoogleCloudSDKインストール

# 最新化
sudo apt-get update
sudo apt-get upgrade -y
sudo apt-get autoremove -y

# パッケージソース追加
sudo curl -fsSL https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo gpg --dearmor -o /usr/share/keyrings/cloud.google.gpg
sudo sh -c 'echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] https://packages.cloud.google.com/apt cloud-sdk main" >> /etc/apt/sources.list.d/google-cloud-sdk.list'
sudo apt-get update
sudo apt-get install -y kubectl
sudo apt-get install -y google-cloud-sdk

# 初期化
gcloud init

# Googleアカウント切り替え
gcloud auth list
gcloud auth login Googleアカウント名
gcloud config set account Googleアカウント名
gcloud auth revoke Googleアカウント名

# プロジェクト切り替え
gcloud config set project プロジェクトID

# SSH
gcloud compute --project プロジェクトID ssh --zone VMインスタンスリージョン VMインスタンス名

# SCP
gcloud compute scp /作業端末のディレクトリ/ファイル名 VMインスタンス名:/配置先ディレクトリ --project プロジェクトID --zone VMインスタンスリージョン

# GoogleCloudStorageからダウンロードする
gsutil cp gs://バケット名/ファイル名 .
gsutil cp -r gs://バケット名/* .

# GoogleCloudStorageにアップロードする
gsutil cp ファイル名 gs://バケット名
gsutil cp -r ディレクトリ名 gs://バケット名

Linux操作

Linux操作

# OS情報確認
cat /etc/os-release
do-release-upgrade -V

# 再起動(shutdownを使うのが安牌)
reboot
sudo shutdown -r now

# シャットダウン(shutdownを使うのが安牌)
poweroff
sudo shutdown -h now

# システム負荷
top -d 更新間隔(秒) -n 繰り返す回数(回)
## 特定プロセスのシステム負荷
top -d 更新間隔(秒) -n 繰り返す回数(回) -p プロセスID

# ディスク使用率
df -h

# ユーザー
## ユーザー一覧
cat /etc/passwd
## ユーザー追加
sudo useradd ユーザー名
## ユーザー削除
sudo userdel ユーザー名
## パスワード変更
sudo passwd ユーザー名
## ユーザー切り替え
su ユーザー名
## 現在のユーザー確認
whoami

# グループ
## グループ一覧
cat /etc/group
## ユーザーにグループを追加
sudo gpasswd -a ユーザー名 グループ名
## ユーザーからグループを削除
sudo gpasswd -d ユーザー名 グループ名
## ユーザーのグループを変更
sudo usermod G グループ名 ユーザー名

# パッケージ検索
## パッケージ検索
sudo apt-cache search パッケージ名
## パッケージ検索(インストール可能)
sudo apt-cache policy パッケージ名
## アップグレード可能なパッケージ一覧
sudo apt-get --simulate upgrade
sudo apt list --upgradable

# パッケージインストール
## パッケージインストール
sudo apt-get install パッケージ名
## パッケージアンインストール
sudo apt-get remove パッケージ名

# パッケージの自動更新のオンオフ
## 自動更新オンのパッケージ一覧
sudo apt-mark showmanual
## 自動更新オフのパッケージ一覧
sudo apt-mark showhold
## パッケージの自動更新オン
sudo apt-mark unhold パッケージ名
## パッケージの自動更新オフ
sudo apt-mark hold パッケージ名

# システムマネージャー
## システム起動
sudo systemctl start システム名
## システム停止
sudo systemctl stop システム名
## システム再起動
sudo systemctl restart システム名
## システムの状態確認
sudo systemctl status システム名
## OS起動時にシステム起動する
sudo systemctl enable システム名
## OS起動時にシステム起動しない
sudo systemctl disable システム名

# ディレクトリ
## 現在のディレクトリ確認
pwd
## ディレクトリを移動
cd ディレクトリ名

# ファイル
## 現在のディレクトリのファイル一覧
ls -al
## ファイル権限変更
### コマンド
chmod 三桁数字 ファイル名
### 三桁数字
所有者  所有者グループ  その他
421  421  421
rwx  rwx  rwx
## 所有者変更
### ファイルの所有者を変更
chown ユーザー名 ファイル名
### ファイルの所有者、所有グループを変更
chown ユーザー名:グループ名 ファイル名
### ディレクトリ配下のファイルの所有者を変更
chown -hR ユーザー名 ディレクトリ名

# ファイルの圧縮解凍
## tar
### 圧縮
tar -cvf xxxx.tar directory
### 解凍
tar -xvf xxxx.tar
## tar.gz
### 圧縮
tar -zcvf xxxx.tar.gz directory
### 解凍
tar -zxvf xxxx.tar.gz
## zip
sudo apt-get install -y zip
### 圧縮
zip -r xxxx.zip directory
### 解凍
unzip xxxx.zip

# 削除
rm -rf 削除したいファイル名
rm -Rf 削除したいディレクトリ名

# IP確認
ip -4 a

# MACアドレス確認
ip addr show

# 経路確認
tracepath ホスト名(or IP)

# DNSに問い合わせ
nslookup ホスト名(or IP)

# SSH
## SSH接続
ssh -i 鍵 ユーザー名@リモートホスト名
## 鍵作成
ssh-keygen -t rsa -b 4096 -f 鍵
## 登録されている鍵
### SSHする側(公開鍵)
sudo vi ~/.ssh/known_hosts
### SSHされる側(秘密鍵)
sudo vi ~/.ssh/authorized_keys

# ファイル転送
## ローカルからリモートホストにファイルをコピーする
scp -i 鍵 /作業端末のディレクトリ/ファイル名 ユーザー名@リモートホスト名:/配置先ディレクトリ
## リモートホストからローカルにファイルをコピーする
scp -i 鍵 ユーザー名@リモートホスト名:/配置先ディレクトリ/ファイル名 /作業端末のディレクトリ

cron操作

cron操作

# 編集
基本的に追記していく。ユーザーにrootは使わないほうが良い。
## コマンド
crontab -e
## 書き方
m h dom mon dow command
分 時 日 月 曜日 コマンド
### 分
0~59の数字で指定するか、*で毎分実行にする
*/5で5分毎
### 時
0~23の数字で指定するか、*で毎時実行にする
*/6で6時間毎
### 日
1~31の数字で指定するか、*で毎日実行にする
*/5で5日毎
### 月
1~12の数字で指定するか、*で毎月実行にする
*/3で3ヶ月毎
### 曜日
0~6の数字を指定するか、*で全ての曜日で実行する
0で毎週日曜日
1で毎週月曜日
2で毎週火曜日
3で毎週水曜日
4で毎週木曜日
5で毎週金曜日
6で毎週土曜日
*で全ての曜日
### コマンド
フルパスで指定
### 例
3分毎に実行(正常系と異常系のログを分ける)
*/3 * * * * /usr/bin/python3 /home/python/cron.py 1>> /home/python/success.log 2>> /home/python/error.log
3分毎に実行(正常系と異常系のログを分けない)
*/3 * * * * /usr/bin/python3 /home/python/cron.py >> /home/python/cron.log 2>&1

# 登録内容確認
crontab -l

# cron再起動
sudo systemctl restart cron

# cron実行ログ確認方法
cat /var/log/syslog | grep CRON

# 動作確認
sudo systemctl status cron

Python3インストール

Python3 # インストール sudo apt-get install -y python3 sudo apt-get install -y python3-dev sudo apt-get install -y python3-pip sudo apt-get install -y python3-venv sudo apt-get install -y python3-tk # バージョン確認 python3 -V # インストール先確認 which python3 # 仮想環境 ## 仮想環境作成 python3 -m venv 仮想環境名 ## 仮想環境削除 rm -Rf 仮想環境名 ## 仮想環境に入る source 仮想環境名/bin/activate ## 仮想環境から出る deactivate ## ユーザーログイン時に仮想環境に強制的に入る echo 'source 仮想環境名/bin/activate' >> ~/.bash_profile # pip最新化 python3 -m pip install -U pip # パッケージの追加 python3 -m pip install パッケージ名 # 脳死 python3 -m pip install パッケージ名==バージョン # バージョン指定 python3 -m pip install パッケージ名>=バージョン # バージョン以上 # パッケージの削除 python3 -m pip uninstall パッケージ名 # パッケージの更新 python3 -m pip install -U パッケージ名 # パッケージの一覧 python3 -m pip list # パッケージの固定 python3 -m pip freeze > requirements.txt python3 -m pip install -r requirements.txt # 複数バージョンを維持 # 複数バージョンをインストール sudo apt-get install -y python3.8 sudo apt-get install -y python3.9 # 複数バージョンを登録 sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.9 1 sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 2 # 複数バージョンの切替 sudo update-alternatives --config python3 # 複数バージョンの一覧 sudo update-alternatives --list python3 # webサーバー python3 -m http.server 8080

Ubuntuキッティング

Ubuntuキッティング

# 最新化
sudo apt-get update
sudo apt-get upgrade -y
sudo apt-get autoremove -y

# パッケージ依存関係整理
sudo apt-get dist-upgrade

# vim
## インストール
sudo apt-get install -y vim
## デフォルト変更
select-editor

# Chrome
## 公式リンク
https://www.google.com/chrome/?hl=ja
## パッケージソース追加
sudo curl -fsSL https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo gpg --dearmor -o /usr/share/keyrings/chrome-archive-keyring.gpg
sudo sh -c 'echo "deb [signed-by=/usr/share/keyrings/chrome-archive-keyring.gpg] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/chrome.list'
sudo apt-get update
## インストール
sudo apt-get install -y google-chrome-stable
## 邪魔になったパッケージソース削除
sudo rm -rf /usr/share/keyrings/chrome-archive-keyring.gpg
sudo rm -rf /etc/apt/sources.list.d/chrome.list
sudo apt-get update

# Atom
## 公式リンク
https://flight-manual.atom.io/getting-started/sections/installing-atom/
## パッケージソース追加
sudo sh -c 'echo "deb [arch=amd64] https://packagecloud.io/AtomEditor/atom/any/ any main" >> /etc/apt/sources.list.d/atom.list'
sudo wget -q -O - https://packagecloud.io/AtomEditor/atom/gpgkey | sudo apt-key add -
sudo apt-get update
## インストール
sudo apt-get install -y atom
## 日本語化
package「japanese-menu」をインストール

# 趣味
## simplescreenrecorder
sudo apt-get install -y simplescreenrecorder
## smplayer
sudo apt-get install -y smplayer
## gnome
sudo apt-get install -y gnome

# NVIDIADriver
## 公式リンク
https://docs.nvidia.com/datacenter/tesla/tesla-installation-notes/index.html
## パッケージソース追加
sudo apt-get install linux-headers-$(uname -r)
distribution=$(. /etc/os-release;echo $ID$VERSION_ID | sed -e 's/\.//g')
wget https://developer.download.nvidia.com/compute/cuda/repos/$distribution/x86_64/cuda-keyring_1.0-1_all.deb
sudo dpkg -i cuda-keyring_1.0-1_all.deb
sudo apt-get update
## インストール
sudo apt-get install -y cuda-drivers

# Ubuntuアップグレード
sudo do-release-upgrade
## LTS以外にバージョンアップする場合、以下のファイルを編集
sudo vi /etc/update-manager/release-upgrades

# 依存関係のトラブルシューティング
## 大体はコレで直る
sudo apt-get --fix-broken install
## 被疑箇所特定
sudo dpkg --audit
## 被疑箇所を再設定
sudo dpkg --configure パッケージ名
## 被疑箇所がどうにもならなくなって消す
sudo dpkg --remove --force-remove-reinstreq パッケージ名

2021/02/05

DNS

DNS

# ゾーンファイル
URLとIPの対応表の集まり(大体ドメインごとにまとめる)

# DNSレコード
URLとIPの対応表

# SOAレコード
ドメインの管理情報を示すレコード

# NSレコード
ドメインのネームサーバを指定しているレコード

# Aレコード
IPv4形式のIPアドレスに対応したレコード
URL→IPv4

# AAAAレコード
IPv6形式のIPアドレスに対応したレコード
URL→IPv6

# MXレコード
受信用のメールサーバを指定するためのレコード

# TXTレコード
送信用のメールサーバを指定するためのレコード

# CNAMEレコード
URL→URL

# PTRレコード
IP→URL