20201015のLinuxに関する記事は8件です。

sedの備忘録

sedを使ってデータの一括置き換えをしたい時のための備忘録。随時追加予定。

削除

まず、偶数行・奇数行をそれぞれ削除したい時。
準備として偶数行と奇数行に異なる文字列を出力したファイルを準備。

$ for i in {1..10}; do
if [ $(($i % 2)) = 0 ]; then
echo '偶数行です'
else
echo '奇数行です'
fi
done > number.txt

$ cat number.txt
奇数行です
偶数行です
奇数行です
偶数行です
奇数行です
偶数行です
奇数行です
偶数行です
奇数行です
偶数行です

偶数行を削除したい

$ sed -i -e 'n; d' number.txt
$ cat number.txt
奇数行です
奇数行です
奇数行です
奇数行です
奇数行です

奇数行を削除したい

$ sed -i -e '1d; n; d' number.txt
$ cat number.txt
偶数行です
偶数行です
偶数行です
偶数行です
偶数行です

置換

特定の文字列を、空白を含む文字列へ一括置き換えしたい

スペースをエスケープすればいいだけだった。

# 準備
$ pen='これはペンです。\n'
$ printf $pen"%.s" {1..10} > pen.txt
$ cat pen.txt
これはペンです。
これはペンです。
これはペンです。
これはペンです。
これはペンです。
これはペンです。
これはペンです。
これはペンです。
これはペンです。
これはペンです。

# 置換
$ sed -i -e "s/これはペンです。/This\ is\ a\ pen\./g" pen.txt
$ cat pen.txt
This is a pen.
This is a pen.
This is a pen.
This is a pen.
This is a pen.
This is a pen.
This is a pen.
This is a pen.
This is a pen.
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Linux ユーザー系コマンド

ユーザーを変更したり、権限系のコマンド

rootユーザーに切り替え(カレントディレクトリはそのまま)
sudo su
rootユーザーに切り替え(rootユーザーのホームディレクトリへ移動)
sudo su -
対象ファイルの扱える権限を変更する
chmod 権限 ファイル名

権限の表示方は2通り

パターン1 数字で表現

権限表現
1 実行権限のみ
2 書込権限のみ
3 実行+書込権限
4 読込権限のみ
5 読込+実行
6 読込+書込
7 読込+書込+実行
chmod 654 testfile.txt

ls -l
total 0
-rw-r-xr--  1 user  group  0 10 15 21:04 testfile.txt

※上記は権限は所持ユーザーが読込と書込できて、グループが読込と実行できて、その他は読込だけという権限に変更した場合。

パターン2 文字で表現

ユーザー表現
u → ユーザー
g → グループ
o → その他
a → 全ユーザー
権限表現
r 読込
w 書込
x 実行
変更表現
+ 現状から追加する
- 現状から削除する
= 直接結果を指定
例__全ユーザーを読込、実行権限有に変更する
# chmod a=rx testfile.txt
# ls -l
total 0
-r-xr-xr-x  1 user  group  0 10 15 21:10 testfile.txt
対象フィルの所有権を変更する
chown 変更ユーザー名 対象ファイル

# グループ名も変更する場合

chown 変更ユーザー名:変更グループ名 対象ファイル

# ディレクトリの所有権を変更する場合

chown -R 変更ユーザー名 対象ディレクトリ
パスワードを設定、更新する
passwd ユーザー名 #ユーザー名を省略すると自身のパスワードを変更
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Dockerの概要(初学者向け)

はじめに

Dockerは多くのIT開発企業で導入されている技術です。
エンジニアを目指す方の多くは今後使用することとなるため、学習した内容を簡単にまとめようと思います。

Dockerとは?

一言で言うと、環境構築を楽にさせるものです。
通常、アプリケーションを開発する際は、環境構築から始まります。
環境構築をする時はいくつものパッケージをダウンロードします。
その際、エラーが出て、トラブルシュートしたりと大変な作業となり、
これをチームメンバー全員が行うことになります。
また、開発環境、テスト環境、本番環境でも環境構築を気に掛ける必要があります。
Dockerではコンテナを起動するだけで環境構築が完了するため、環境構築が非常に楽になります。

コンテナとは?

通常、コンテナと言うものは内部にものを入れることができる容器のことです。
Dockerでのコンテナは、自身のPCやサーバーに多数作成でき、開発環境や実行環境、パッケージ、ライブラリをインストールすることができる箱のようなものです。
コンテナの中で作業したり、コンテナを使ってスクリプトを動かすことができます。
一つコンテナを作れば、それを誰かに渡したり、テスト環境や本番環境に渡したりすることができます。

コンテナの作り方

Docker file => Docker image => コンテナ

Docker fileを作成し、そこからDocker imageを作成します。
このDocker imageからコンテナを作成することができます。

Docker Hub

多くのパッケージはDocker Hubの中に用意されています。
Gitで言うGit Hubのようなものです。
Docker imageをpublicで管理する時にDocker Hubを使い、
Docker imageをpullすることで、コンテナを作成することができます。

参考

Udemy

かめれおん講師 「米国AI開発者がゼロから教えるDocker講座」

https://www.udemy.com/share/103aTRAEAdd1pTTHoC/

有料ですが、初学者の私にも非常に理解しやすかったです。

最後に

本投稿が初学者の復習の一助となればと幸いです。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

よく使うLinuxコマンド(初学者向け)

はじめに

Linuxは世界中で使われているOSです。MacでもLinuxコマンドは使われますので、よく使うコマンドを一度まとめたいと思います。

今回紹介する Linuxコマンド

  • cd
  • pwd
  • mkdir
  • touch
  • ls
  • rm
  • rm -r

詳細

cd

ディレクトリを移動する。(current directory)

ターミナル
% cd /
=> /(ルートディレクトリ)へ移動
% cd
=> ~(ホームディレクトリ)へ移動
% cd appfolder
=> カレントディレクトリ内にappfolderというディレクトリがある場合はappfolderへ移動
% cd ..
=> 親ディレクトリ(カレントディレクトリの一段上のディレクトリ)へ移動

pwd

今いるディレクトリを表示する。(pringt working directory)

ターミナル
例) Desktopにいる時

% pwd
=> /Users/ユーザー名/Desktop

mkdir

ディレクトリを作成する。(make directory)

ターミナル
例)Desktopにいる時

% mkdir newfolder
=> Desktopにnewfolderというディレクトリが作成される

touch

新しいファイルを作成する。

ターミナル
例)Desktopにいる時

%  touch newfile
=> Desktopにnewfileというファイルが作成される

ls

カレントディレクトリ内のファイルやディレクトリを一覧表示する

ターミナル
例)ルートディレクトリにいる時

%  ls
=> Applications Systems Volumes cores...以下省略

rm

カレントディレクトリ内のファイルを削除する

ターミナル
例)Desktopにいて、Desktopにnewfileというファイルが存在する時

%  rm newfile
=> Desktop上のnewfileが削除される

rm -r

カレントディレクトリ内のディレクトリを削除する。

ターミナル
例)Desktopにいて、Desktopにnewfolderというディレクトリが存在する時

%  rm -r newfolder
=> Desktop上のnewfolderが削除される

最後に

本投稿が初学者の復習の一助となればと幸いです。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

LinuxよりSQL ServerにODBCでアクセスする

はじめに

ニッチだなぁ。。と思いつつLinuxよりMicrosoft SQL ServerにODBC経由で接続する方法を説明してみます。テストはPythonで実施してみます。

Linux環境にDataDirect SQL Server ODBC ドライバをインストール

1、WebサイトからLinux用のSQL Server ODBCドライバの試用版をダウンロードします。

2、ダウンロード後、以下のLinuxコマンドを実行してパッケージを新しいフォルダに移動します。

mkdir datadirect

mv PROGRESS_DATADIRECT_ODBC_SQLSERVER_LINUX_XX.tar.Z datadirect/

cd datadirect/

3、次のコマンドでパッケージを展開します。

tar -xvf PROGRESS_DATADIRECT_ODBC_SQLSERVER_LINUX_64.tar.Z

4、ターミナルで以下のコマンドを実行し、KSHインタプリタをインストールします。

Debian の場合

sudo apt-get install ksh

CentOS/RHELの場合

sudo yum install ksh

5、ターミナルで以下のスクリプトを実行し、インストールを実行します。

./unixmi.ksh

6、プロンプトが表示されたら、Enterまたは「Y」を入力し、OSを確認してください。

image.png

7、使用許諾契約書に「yes」で同意します。
image.png

8、プロンプトに名前や会社名などを入力します。シリアル番号とキーに EVAL と入力します。
image.png

9、付属するすべてのドライバーをインストールするか、1 つのドライバーを選択してインストールするかを選択する画面が表示されますが、ここではオプション 2 を選択します。

image.png

10、インストールするドライバのリストが表示されます。オプション11の'SQL Server Wire Protocol'を選択します。

image.png

11、パスを確認します。確認できなかった場合はパスを入力してください。

image.png

12、インストールが終了するまでお茶でも飲んで待ちます。別の Linux ドライバをインストールしたい場合は「Y」で色々試せますが、今回は「N」でインストーラーを終了させます。

image.png

SQL Server ODBCドライバの設定

1、インストレーションパス
/Progress/DataDirect/Connect_64_for_ODBC_71
(バージョンにより末尾が異なります)
に移動し、ターミナルで以下のコマンドを実行。環境変数ODBCINI、ODBCINST、LD_LIBRARY_PATHを追加します。

sudo chmod +x odbc.sh

./odbc.sh

2、以下のコマンドで変数ODBCINI、ODBCINST、LD_LIBRARY_PATHが正常にインストールされているかどうかを確認します。ファイル odbc.ini のパスが表示されているはずです。

echo $ODBCINI

./odbc.sh

3、環境変数が正しく追加されていない場合は、これらの値を ~/.bashrc に追加してください。

export LD_LIBRARY_PATH=/install_path/Progress/DataDirect/Connect64_for_ODBC_71/lib

export ODBCINI=/ install_path/Progress/DataDirect/Connect64_for_ODBC_71/odbc.ini

export ODBCINST=/ install_path/Progress/DataDirect/Connect64_for_ODBC_71/odbcinst.ini

4、以下のコマンドでターミナルの設定をリフレッシュします。

source ~/.bashrc

5、パス /install_path/Progress/DataDirect/Connect64_for_ODBC_71/odbc.ini
にある odbc.ini ファイルを開き、次のサンプル odbc.ini に示すように SQL Server 接続の詳細を設定します。

[ODBC Data Sources]

SQL Server Legacy Wire Protocol=DataDirect 7.1 SQL Server Legacy Wire Protocol

[ODBC]
IANAAppCodePage=4

InstallDir=/home/progress/Progress/DataDirect/Connect64_for_ODBC_71

Trace=0

TraceFile=odbctrace.out

TraceDll=/home/progress/Progress/DataDirect/Connect64_for_ODBC_71/lib/ddtrc27.so

[SQL Server Wire Protocol]
Driver=/home/progress/Progress/DataDirect/Connect64_for_ODBC_71/lib/ddsqls27.so

Description=DataDirect 7.1 SQL Server Wire Protocol

AlternateServers=

AlwaysReportTriggerResults=0

AnsiNPW=1

ApplicationName=

ApplicationUsingThreads=1

AuthenticationMethod=1

BulkBinaryThreshold=32

BulkCharacterThreshold=-1

BulkLoadBatchSize=1024

BulkLoadFieldDelimiter=

BulkLoadOptions=2

BulkLoadRecordDelimiter=

ConnectionReset=0

ConnectionRetryCount=0

ConnectionRetryDelay=3

Database=<database_name>

EnableBulkLoad=0

EnableQuotedIdentifiers=0

EncryptionMethod=0

FailoverGranularity=0

FailoverMode=0

FailoverPreconnect=0

FetchTSWTZasTimestamp=0

FetchTWFSasTime=1

GSSClient=native

HostName=<server_name>

HostNameInCertificate=

InitializationString=

Language=

LoadBalanceTimeout=0

LoadBalancing=0

LoginTimeout=15

LogonID=<logon id> (optional)

MaxPoolSize=100

MinPoolSize=0

PacketSize=-1

Password=<password> (optional)

Pooling=0

PortNumber=1433

QueryTimeout=0

ReportCodePageConversionErrors=0

SnapshotSerializable=0

TrustStore=

TrustStorePassword=

ValidateServerCertificate=1

WorkStationID=

XMLDescribeType=-10

6、odbc.iniファイルを保存して終了します。

SQL Server ODBC 接続のテスト

1、ODBCドライバをテストしてみます。今回、簡単なPythonスクリプトで実施してみます。以下のコマンドを実行してpyodbcパッケージをインストールします。


pip install pyodbc

ライブラリが見つからないという例外が発生した場合は、unixODBC パッケージをインストールする必要があるかもしれません。以下のコマンドを実行することでインストールできます。

Debain:

sudo apt-get install unixodbc unixodbc-dev

CentOS/Redhat:

sudo apt-get install unixODBC unixODBC-devel

2、以下のスクリプトをpythonファイルに保存して実行。SQL Serverに正常に接続できるかどうかを確認します。

import pyodbc



##connecting to your database through ODBC

cnxn = pyodbc.connect('DSN=SQL Server Wire Protocol;UID=sa;PWD=pass', autocommit=True)

cursor = cnxn.cursor()

3、SQL Serverへの接続に成功したら、上記のファイルに以下のスクリプトを追加して、データベース内のテーブルを出力できます。

##Print TableNames

for row in cursor.tables():

                if row.table_type == "TABLE":

                                print (row.table_name)

                                print (row)

4、また、以下のスクリプトを追加してスクリプトを実行してみることもできます。クエリを実行しようとしているNorthwindデータベースが存在することに注意してください。

##Executing a simple query and printing the records

cursor.execute("SELECT EmployeeID, LastName, FirstName, Address, City, Region from Northwind.dbo.Employees")

for row in cursor.fetchall():

    print (row)

この記事ではSQL Server 認証モードを使用していますが、DataDirect SQL Server ODBC および JDBC ドライバは、Windows 認証および Kerberos もサポートしていますので、そちらは別の機会に。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

LinuxよりSQL ServerにPythonでODBCアクセスする

はじめに

機械学習以外でこんな用途あるのかなぁ。。。
ニッチだなぁ。。と思いつつLinuxよりMicrosoft SQL ServerにODBC経由で接続する方法を説明してみます。テストはPythonで実施してみます。

Linux環境にDataDirect SQL Server ODBC ドライバをインストール

1、WebサイトからLinux用のSQL Server ODBCドライバの試用版をダウンロードします。

2、ダウンロード後、以下のLinuxコマンドを実行してパッケージを新しいフォルダに移動します。

mkdir datadirect

mv PROGRESS_DATADIRECT_ODBC_SQLSERVER_LINUX_XX.tar.Z datadirect/

cd datadirect/

3、次のコマンドでパッケージを展開します。

tar -xvf PROGRESS_DATADIRECT_ODBC_SQLSERVER_LINUX_64.tar.Z

4、ターミナルで以下のコマンドを実行し、KSHインタプリタをインストールします。

Debian の場合

sudo apt-get install ksh

CentOS/RHELの場合

sudo yum install ksh

5、ターミナルで以下のスクリプトを実行し、インストールを実行します。

./unixmi.ksh

6、プロンプトが表示されたら、Enterまたは「Y」を入力し、OSを確認してください。

image.png

7、使用許諾契約書に「yes」で同意します。
image.png

8、プロンプトに名前や会社名などを入力します。シリアル番号とキーに EVAL と入力します。
image.png

9、付属するすべてのドライバーをインストールするか、1 つのドライバーを選択してインストールするかを選択する画面が表示されますが、ここではオプション 2 を選択します。

image.png

10、インストールするドライバのリストが表示されます。オプション11の'SQL Server Wire Protocol'を選択します。

image.png

11、パスを確認します。確認できなかった場合はパスを入力してください。

image.png

12、インストールが終了するまでお茶でも飲んで待ちます。別の Linux ドライバをインストールしたい場合は「Y」で色々試せますが、今回は「N」でインストーラーを終了させます。

image.png

SQL Server ODBCドライバの設定

1、インストレーションパス
/Progress/DataDirect/Connect_64_for_ODBC_71
(バージョンにより末尾が異なります)
に移動し、ターミナルで以下のコマンドを実行。環境変数ODBCINI、ODBCINST、LD_LIBRARY_PATHを追加します。

sudo chmod +x odbc.sh

./odbc.sh

2、以下のコマンドで変数ODBCINI、ODBCINST、LD_LIBRARY_PATHが正常にインストールされているかどうかを確認します。ファイル odbc.ini のパスが表示されているはずです。

echo $ODBCINI

./odbc.sh

3、環境変数が正しく追加されていない場合は、これらの値を ~/.bashrc に追加してください。

export LD_LIBRARY_PATH=/install_path/Progress/DataDirect/Connect64_for_ODBC_71/lib

export ODBCINI=/ install_path/Progress/DataDirect/Connect64_for_ODBC_71/odbc.ini

export ODBCINST=/ install_path/Progress/DataDirect/Connect64_for_ODBC_71/odbcinst.ini

4、以下のコマンドでターミナルの設定をリフレッシュします。

source ~/.bashrc

5、パス /install_path/Progress/DataDirect/Connect64_for_ODBC_71/odbc.ini
にある odbc.ini ファイルを開き、次のサンプル odbc.ini に示すように SQL Server 接続の詳細を設定します。

[ODBC Data Sources]

SQL Server Legacy Wire Protocol=DataDirect 7.1 SQL Server Legacy Wire Protocol

[ODBC]
IANAAppCodePage=4

InstallDir=/home/progress/Progress/DataDirect/Connect64_for_ODBC_71

Trace=0

TraceFile=odbctrace.out

TraceDll=/home/progress/Progress/DataDirect/Connect64_for_ODBC_71/lib/ddtrc27.so

[SQL Server Wire Protocol]
Driver=/home/progress/Progress/DataDirect/Connect64_for_ODBC_71/lib/ddsqls27.so

Description=DataDirect 7.1 SQL Server Wire Protocol

AlternateServers=

AlwaysReportTriggerResults=0

AnsiNPW=1

ApplicationName=

ApplicationUsingThreads=1

AuthenticationMethod=1

BulkBinaryThreshold=32

BulkCharacterThreshold=-1

BulkLoadBatchSize=1024

BulkLoadFieldDelimiter=

BulkLoadOptions=2

BulkLoadRecordDelimiter=

ConnectionReset=0

ConnectionRetryCount=0

ConnectionRetryDelay=3

Database=<database_name>

EnableBulkLoad=0

EnableQuotedIdentifiers=0

EncryptionMethod=0

FailoverGranularity=0

FailoverMode=0

FailoverPreconnect=0

FetchTSWTZasTimestamp=0

FetchTWFSasTime=1

GSSClient=native

HostName=<server_name>

HostNameInCertificate=

InitializationString=

Language=

LoadBalanceTimeout=0

LoadBalancing=0

LoginTimeout=15

LogonID=<logon id> (optional)

MaxPoolSize=100

MinPoolSize=0

PacketSize=-1

Password=<password> (optional)

Pooling=0

PortNumber=1433

QueryTimeout=0

ReportCodePageConversionErrors=0

SnapshotSerializable=0

TrustStore=

TrustStorePassword=

ValidateServerCertificate=1

WorkStationID=

XMLDescribeType=-10

6、odbc.iniファイルを保存して終了します。

SQL Server ODBC 接続のテスト

1、ODBCドライバをテストしてみます。今回、簡単なPythonスクリプトで実施してみます。以下のコマンドを実行してpyodbcパッケージをインストールします。


pip install pyodbc

ライブラリが見つからないという例外が発生した場合は、unixODBC パッケージをインストールする必要があるかもしれません。以下のコマンドを実行することでインストールできます。

Debain:

sudo apt-get install unixodbc unixodbc-dev

CentOS/Redhat:

sudo apt-get install unixODBC unixODBC-devel

2、以下のスクリプトをpythonファイルに保存して実行。SQL Serverに正常に接続できるかどうかを確認します。

import pyodbc



##connecting to your database through ODBC

cnxn = pyodbc.connect('DSN=SQL Server Wire Protocol;UID=sa;PWD=pass', autocommit=True)

cursor = cnxn.cursor()

3、SQL Serverへの接続に成功したら、上記のファイルに以下のスクリプトを追加して、データベース内のテーブルを出力できます。

##Print TableNames

for row in cursor.tables():

                if row.table_type == "TABLE":

                                print (row.table_name)

                                print (row)

4、また、以下のスクリプトを追加してスクリプトを実行してみることもできます。クエリを実行しようとしているNorthwindデータベースが存在することに注意してください。

##Executing a simple query and printing the records

cursor.execute("SELECT EmployeeID, LastName, FirstName, Address, City, Region from Northwind.dbo.Employees")

for row in cursor.fetchall():

    print (row)

この記事ではSQL Server 認証モードを使用していますが、DataDirect SQL Server ODBC および JDBC ドライバは、Windows 認証および Kerberos もサポートしていますので、そちらは別の機会に。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Beagle Bone BlackでRemote Developmentを使うためにDebian 10をインストール

目的

最大の目的はVSCodeのRemote SSHが使えるようにすること。リモート側の必要条件としては以下のようになっている1

requires kernel >= 3.10
glibc >=2.17
libstdc++ >= 3.4.18

配布時にもらった個体には2013年ぐらいのÅngströmが入っていて上記のライブラリを入れるのがめんどくさかった。
ちまちま更新してもいいけど競合してもめんどくさいしこの際OSごと更新してしまうことにした。

使用機材

  • Beagle Bone Black Rev.C

方法

1.BBB用のイメージのダウンロード

BeagleBoneにLinuxをインストールする - memorandum
こちらの記事をもとにありがたくインストールさせていただく。

BeagleBoard.org Latest Firmware Images
ここからAM3358 Debian 10.3 2020-04-06 4GB SD IoTを選択してダウンロードする。

スクリーンショット 2020-10-15 024739.png

2.SDカードにイメージを焼きこむ

Raspberry Piなどでも使われているEtcherが使える。Electronを使ったリッチなUIですごい。容量も書き込みツールのわりにすごい。
左端でダウンロードしてきたイメージを選択し、中央で書き込み先、右端が書き込み開始ボタン。
スクリーンショット 2020-10-15 025149.png

3.BBBのeMMC上にDebianを書き込み

BBBにSDカードを差し込み、SDカード付近にあるボタンを押しながら起動する。
LANポート近くの4つのLEDが点灯するまで押し続けること。

適当な時間放置したあと(LEDのちかちかが控えめになったら)SSHでBBBに接続する。
ユーザー名はdebian, パスワードはtemppwd。

ログインしたら1.で紹介したありがたい記事に

/boot/uEnv.txtを以下のように修正して保存します。
##enable BBB: eMMC Flasher: cmdline=init=/opt/scripts/tools/eMMC/init-eMMC-flasher-v3.sh

とあるように修正しておく。

その後SDカードを抜かずsudo reboot sudo shutdown -h nowを実行して、再起動する。
eMMCの書き込みには20分ぐらいかかるのでしばらく放置する。
LEDのちかちかが控えめになったらSSHでアクセスしてみるとうまくいった。

4.環境作成

ここからはbeagle bone black上にC/C++コンパイル環境を作成する。
ここまでやっておいてあれだがクロスコンパイルのほうが効率いいかも

また、今回BBBは完全にネットワークから切り離された組み込みボードとして使用するので常にrootユーザでログインしておいても問題ないはずだ。というわけでrootユーザにパスワードを設定して使用できるようにしておく。パスを設定しないとrootユーザは使用可能にならない模様。なぜでしょうね?Linuxのユーザー関係についてよく理解していない。
これは必須ではないが楽をするためにやっている。

  1. sudo passwd rootでパスワードを設定する。

  2. 次にrootでsshログインできるようにする。初期設定ではできないためだ。
    /etc/ssh/sshd_config
    #PermitRootLogin without-passwordのようになっているのを
    #PermitRootLogin yesとする。
    そしてsudo service sshd restartを実行してsshdを再起動する。

  3. sshでrootログインできるようになった。

次に各種ライブラリ・ツールをインストールする。
apt install build-essential
apt install gdb

ここまでやればあとは手前みその記事にあるようにすればVSCodeを用いてデバッグ・コンパイルできる。

感想

特に詰まらずにデバッグできるようになったのには軽く感動を覚えた。
今後は多数ファイルのプロジェクトをCMakeとNinjaでビルドできるようになりたい。

参考文献

BeagleBoneにLinuxをインストールする - memorandum

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

ポートフォワードした際のSCPがわからなくなった時

セキュリティの関係などで、ポートフォワードして踏み台サーバ経由で通信した際のファイルのやりとりがいつもしくじるので備忘録を書きました。

実行コマンド

まずはポートフォワードします。 1234:1.2.3.4 がSSH接続に使用するポートと接続先のIPアドレス、 user@5.6.7.8 が踏み台サーバにログインするユーザ名と踏み台サーバのIPアドレスです。 /.ssh/id_rsa は秘密鍵のパスです。

ssh -A -L 1234:1.2.3.4 -i /.ssh/id_rsa user@5.6.7.8

scp接続します。

scp -r -i /.ssh/id_rsa -P 10022 user@localhost:/etc/path/to/file /file/ /local/pc/path

サーバ上の/etc/path/to/fileのディレクトリの中身をローカルPC上の/local/pc/pathに転送するというコマンドです。
転送元の場所 転送先の場所の並びとなります。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む