Could not open /dev/vmmon: ??????????????????????.
Please make sure that the kernel module `vmmon' is loaded.
# vmware-modconfig --console --build-mod vmmon
# vmware-modconfig --console --build-mod vmnet
# vmware-modconfig --console --build-mod vmci
# modprobe vmmon
# modprobe vmnet
# modprobe vmci
# service vmware restart
# modprobe vmmon
modprobe: ERROR: could not insert 'vmmon': Required key not available
# modprobe vmnet
modprobe: ERROR: could not insert 'vmnet': Required key not available
# modprobe vmci
modprobe: FATAL: Module vmci not found.
#
エラー発生。
Secure Boot keysをclearする。
BIOS
Secure Boot Configuration
Confiure Legacy Support and Secure Boot Legacy Support Enable and Secure Boot Disable
Secure Boot Key Management
□Import Custom sercure Boot keys
■Clear Secure Boot keys
□Reset Secure Boot keys to factory defaults
□Enable MS UEFI CA key
2018年11月20日火曜日
2018年10月12日金曜日
CentOS7 にChromeをインストール
# vi /etc/yum.repos.d/google-chrome.repo
[google-chrome]
name=google-chrome
baseurl=http://dl.google.com/linux/chrome/rpm/stable/x86_64
enabled=1
gpgcheck=1
gpgkey=https://dl.google.com/linux/linux_signing_key.pub
# yum update
# yum install google-chrome-stable
[google-chrome]
name=google-chrome
baseurl=http://dl.google.com/linux/chrome/rpm/stable/x86_64
enabled=1
gpgcheck=1
gpgkey=https://dl.google.com/linux/linux_signing_key.pub
# yum install google-chrome-stable
2018年10月11日木曜日
CentOS7 にmysql8をインストール
CentOS7にバンドルされているmariaDBとデータを削除。# yum remove mariadb-libs
# rm -rf /var/lib/mysql/
https://dev.mysql.com/downloads/repo/yum/
# vi /etc/my.cnf
# rm -rf /var/lib/mysql/
https://dev.mysql.com/downloads/repo/yum/
Red Hat Enterprise Linux 7 / Oracle Linux 7 (Architecture Independent), RPM Package
のダウンロードからリンクアドレスをコピー。(No thanks,just start my download)
# rpm -ivh https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm
# yum install mysql-community-devel
# yum install mysql-community-server
# yum install mysql-community-client # yum install mysql-community-devel
# yum install mysql-community-server
# vi /etc/my.cnf
(追加)
log_timestamps=SYSTEM
skip-character-set-client-handshake
character-set-server=utf8mb4
explicit_defaults_for_timestamp=ON
#
# systemctl start mysqld
# systemctl enable mysqld
# mysql
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
# 次のコマンドで仮パスワードを検索して入力する。
# cat /var/log/mysqld.log | grep 'password is generated'
新しいパスワードに更新。
mysql -u root -p
初期パスワードを入力
mysql -u root -p
初期パスワードを入力
mysql> set password= 'xxxxxxxxx';
CentOS7 safeモードで起動してパスワードをリセット
# systemctl stop mysqld
# systemctl set-environment MYSQLD_OPTS="--skip-grant-tables"
# systemctl start mysqld
# mysql -u root
mysql> use mysql
mysql> UPDATE mysql.user SET authentication_string=null WHERE User='root';
mysql> flush privileges;
# systemctl stop mysqld
# systemctl unset-environment MYSQLD_OPTS
# systemctl start mysqld
# mysql_upgrade -u root -p
# mysql -u root
mysql>ALTER USER 'root'@'localhost' IDENTIFIED BY 'password';
mysql> flush privileges;
※ upgradeしないと下記エラーがでる。
ERROR 1146 (42S02): Table 'mysql.role_edges' doesn't exist
■user追加( mysql_native_password で追加)
mysql> use mysql
mysql> create user 'admin' identified with mysql_native_password by "No%3177%";
Query OK, 0 rows affected (0.03 sec)
mysql> grant all on *.* to admin with grant option;
Query OK, 0 rows affected (0.09 sec)
mysql> flush privileges;
mysql> select user, host, plugin from user;
+------------------+-----------+-----------------------+
| user | host | plugin |
+------------------+-----------+-----------------------+
| admin | % | mysql_native_password |
| mysql.infoschema | localhost | caching_sha2_password |
| mysql.session | localhost | caching_sha2_password |
| mysql.sys | localhost | caching_sha2_password |
| root | localhost | caching_sha2_password |
+------------------+-----------+-----------------------+
6 rows in set (0.00 sec)
ユーザ削除
mysql> drop user 'admin';
■テストデータ作成
mysql> create database testDB;
Query OK, 1 row affected (0.17 sec)
mysql> create table testDB.mst001(
-> id INT AUTO_INCREMENT NOT NULL PRIMARY KEY,
-> title VARCHAR(50),
-> content TEXT,
-> created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
-> );
Query OK, 0 rows affected (0.70 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
| testDB |
+--------------------+
5 rows in set (0.01 sec)
mysql> describe testDB.mst001;
+------------+-------------+------+-----+-------------------+-------------------+
| Field | Type | Null | Key | Default | Extra |
+------------+-------------+------+-----+-------------------+-------------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| title | varchar(50) | YES | | NULL | |
| content | text | YES | | NULL | |
| created_at | timestamp | NO | | CURRENT_TIMESTAMP | DEFAULT_GENERATED |
+------------+-------------+------+-----+-------------------+-------------------+
4 rows in set (0.01 sec)
mysql> use testDB;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> show tables;
+------------------+
| Tables_in_testDB |
+------------------+
| mst001 |
+------------------+
1 row in set (0.00 sec)
CentOS7 safeモードで起動してパスワードをリセット
# systemctl stop mysqld
# systemctl set-environment MYSQLD_OPTS="--skip-grant-tables"
# systemctl start mysqld
# mysql -u root
mysql> use mysql
mysql> UPDATE mysql.user SET authentication_string=null WHERE User='root';
mysql> flush privileges;
# systemctl stop mysqld
# systemctl unset-environment MYSQLD_OPTS
# systemctl start mysqld
# mysql_upgrade -u root -p
# mysql -u root
mysql>ALTER USER 'root'@'localhost' IDENTIFIED BY 'password';
mysql> flush privileges;
※ upgradeしないと下記エラーがでる。
ERROR 1146 (42S02): Table 'mysql.role_edges' doesn't exist
■user追加( mysql_native_password で追加)
mysql> use mysql
mysql> create user 'admin' identified with mysql_native_password by "No%3177%";
Query OK, 0 rows affected (0.03 sec)
mysql> grant all on *.* to admin with grant option;
Query OK, 0 rows affected (0.09 sec)
mysql> flush privileges;
mysql> select user, host, plugin from user;
+------------------+-----------+-----------------------+
| user | host | plugin |
+------------------+-----------+-----------------------+
| admin | % | mysql_native_password |
| mysql.infoschema | localhost | caching_sha2_password |
| mysql.session | localhost | caching_sha2_password |
| mysql.sys | localhost | caching_sha2_password |
| root | localhost | caching_sha2_password |
+------------------+-----------+-----------------------+
6 rows in set (0.00 sec)
ユーザ削除
mysql> drop user 'admin';
■テストデータ作成
mysql> create database testDB;
Query OK, 1 row affected (0.17 sec)
mysql> create table testDB.mst001(
-> id INT AUTO_INCREMENT NOT NULL PRIMARY KEY,
-> title VARCHAR(50),
-> content TEXT,
-> created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
-> );
Query OK, 0 rows affected (0.70 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
| testDB |
+--------------------+
5 rows in set (0.01 sec)
mysql> describe testDB.mst001;
+------------+-------------+------+-----+-------------------+-------------------+
| Field | Type | Null | Key | Default | Extra |
+------------+-------------+------+-----+-------------------+-------------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| title | varchar(50) | YES | | NULL | |
| content | text | YES | | NULL | |
| created_at | timestamp | NO | | CURRENT_TIMESTAMP | DEFAULT_GENERATED |
+------------+-------------+------+-----+-------------------+-------------------+
4 rows in set (0.01 sec)
mysql> use testDB;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> show tables;
+------------------+
| Tables_in_testDB |
+------------------+
| mst001 |
+------------------+
1 row in set (0.00 sec)
mysql>insert into testDB.mst001 values(1,'title01','cont01',20181126);
mysql>insert into testDB.mst001 values(2,'title02','cont02',20181126);
mysql> select * from mst001;
+----+---------+---------+---------------------+
| id | title | content | created_at |
+----+---------+---------+---------------------+
| 1 | title01 | cont01 | 2018-11-26 00:00:00 |
| 2 | title02 | cont02 | 2018-11-26 00:00:00 |
+----+---------+---------+---------------------+
2 rows in set (0.00 sec)
mysql> delete from testDB.mst001 where id=1;
Query OK, 1 row affected (0.15 sec)
mysql> select * from mst001;
+----+---------+---------+---------------------+
| id | title | content | created_at |
+----+---------+---------+---------------------+
| 2 | title02 | cont02 | 2018-11-26 00:00:00 |
+----+---------+---------+---------------------+
1 row in set (0.00 sec)
mysql>create database temp;
mysql>use temp;
mysql>create table g ( code int, goods varchar(16), price int );
mysql>create table t (id int, code int, qty int);
mysql>insert into g value(1,"りんご",150), (2,"みかん",50),(3,"ぶどう",500);
mysql>insert into t value(1, 1,10),(1, 2,15),(2, 3,18);
mysql>create view v as select id, code, goods, qty, price, qty*price as amt from t inner join g using(code) where t.id=1;
mysql>select * from g;
mysql>select * from t;
mysql>select * from v;
mysql>drop view v;
mysql>drop table g, t;
mysql>drop database temp;
+----+---------+---------+---------------------+
| id | title | content | created_at |
+----+---------+---------+---------------------+
| 1 | title01 | cont01 | 2018-11-26 00:00:00 |
| 2 | title02 | cont02 | 2018-11-26 00:00:00 |
+----+---------+---------+---------------------+
2 rows in set (0.00 sec)
mysql> delete from testDB.mst001 where id=1;
Query OK, 1 row affected (0.15 sec)
mysql> select * from mst001;
+----+---------+---------+---------------------+
| id | title | content | created_at |
+----+---------+---------+---------------------+
| 2 | title02 | cont02 | 2018-11-26 00:00:00 |
+----+---------+---------+---------------------+
1 row in set (0.00 sec)
mysql>create database temp;
mysql>use temp;
mysql>create table g ( code int, goods varchar(16), price int );
mysql>create table t (id int, code int, qty int);
mysql>insert into g value(1,"りんご",150), (2,"みかん",50),(3,"ぶどう",500);
mysql>insert into t value(1, 1,10),(1, 2,15),(2, 3,18);
mysql>create view v as select id, code, goods, qty, price, qty*price as amt from t inner join g using(code) where t.id=1;
mysql>select * from g;
mysql>select * from t;
mysql>select * from v;
mysql>drop view v;
mysql>drop table g, t;
mysql>drop database temp;
2018年8月31日金曜日
CentOS7のcron
CentOS7は、デフォルトでanacronが入っている。
# vi /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
# vi /etc/anacrontab
# /etc/anacrontab: configuration file for anacron
# See anacron(8) and anacrontab(5) for details.
SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# the maximal random delay added to the base delay of the jobs
RANDOM_DELAY=45
# the jobs will be started during the following hours only
START_HOURS_RANGE=3-22
#period in days delay in minutes job-identifier command
1 5 cron.daily nice run-parts /etc/cron.daily
7 25 cron.weekly nice run-parts /etc/cron.weekly
@monthly 45 cron.monthly nice run-parts /etc/cron.monthly
【noanacrontabに入れ替える。】
# yum -y install cronie-noanacron
# yum -y remove cronie-anacron
【ユーザ毎】
$ crontab -e
00 * * * * /home/aws/aws.sh
/var/spool/cron下にユーザ名毎に作られる。
【システム初期設定】
# cat /etc/cron.d/dailyjobs
# Run the daily, weekly, and monthly jobs if cronie-anacron is not installed
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# run-parts
02 4 * * * root [ ! -f /etc/cron.hourly/0anacron ] && run-parts /etc/cron.daily
22 4 * * 0 root [ ! -f /etc/cron.hourly/0anacron ] && run-parts /etc/cron.weekly
42 4 1 * * root [ ! -f /etc/cron.hourly/0anacron ] && run-parts /etc/cron.monthly
[root@buffy3 ~]#
# systemctl restart crond
確認
# less /var/log/cron
ユーザ単位であれば、
$ crontab -e
05 * * * * /home/aws/aws/app/s3daily.sh
cronの再起動不要。
# vi /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
# vi /etc/anacrontab
# /etc/anacrontab: configuration file for anacron
# See anacron(8) and anacrontab(5) for details.
SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# the maximal random delay added to the base delay of the jobs
RANDOM_DELAY=45
# the jobs will be started during the following hours only
START_HOURS_RANGE=3-22
#period in days delay in minutes job-identifier command
1 5 cron.daily nice run-parts /etc/cron.daily
7 25 cron.weekly nice run-parts /etc/cron.weekly
@monthly 45 cron.monthly nice run-parts /etc/cron.monthly
【noanacrontabに入れ替える。】
# yum -y install cronie-noanacron
# yum -y remove cronie-anacron
【ユーザ毎】
$ crontab -e
00 * * * * /home/aws/aws.sh
/var/spool/cron下にユーザ名毎に作られる。
【システム初期設定】
# cat /etc/cron.d/dailyjobs
# Run the daily, weekly, and monthly jobs if cronie-anacron is not installed
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# run-parts
02 4 * * * root [ ! -f /etc/cron.hourly/0anacron ] && run-parts /etc/cron.daily
22 4 * * 0 root [ ! -f /etc/cron.hourly/0anacron ] && run-parts /etc/cron.weekly
42 4 1 * * root [ ! -f /etc/cron.hourly/0anacron ] && run-parts /etc/cron.monthly
[root@buffy3 ~]#
# systemctl restart crond
確認
# less /var/log/cron
ユーザ単位であれば、
$ crontab -e
05 * * * * /home/aws/aws/app/s3daily.sh
cronの再起動不要。
pythonのインストール
python Ver3.6をインストール
# yum install python36 python36-libs python36-devel
# python36 -m ensurepip # pip を使えるようにする。
【VENV仮想環境の構築】
# cd /usr/local
# python36 -m venv venv36
# chmod -R a+w venv36 ※インストールFIX後戻す。chmod -R go-w vnen36
$ source /usr/local/venv36/bin/activate
※下記環境がセットされる。
VIRTUAL_ENV=/usr/local/venv/venv36
PATH=/usr/local/venv/venv36/bin:$PATH
deactivate () {}
【PATHの確認】$ python36 -c "import sys; print(sys.path)"
['', '/usr/lib64/python36.zip', '/usr/lib64/python3.6', '/usr/lib64/python3.6/lib-dynload', '/usr/local/venv36/lib64/python3.6/site-packages', '/usr/local/venv36/lib/python3.6/site-packages']
※pipインストール確認
$ pip3 install --upgrade pip
$ pip3 install --upgrade pip --proxy=http://192.168.1.254:3128
$ pip3 list
$ pip3 list --outdated
$ pip3 list --outdated | awk 'NR>2 {print $1}' | xargs pip3 install -U
$ pip3 freeze>requirements.txt
$ pip3 install -r requirements.txt
【proxy下】
$ pip3 install --upgrade pip --proxy=http://user:pwss@192.168.25.254:3128
※エラー発生
'missing Apache httpd server packages.' % APXS)
RuntimeError: The 'apxs' command appears not to be installed or is not executable. Please check the list of prerequisites in the documentation for this package and install any missing Apache httpd server packages.
----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-install-zxt5kngl/mod-wsgi/
# yum -y install httpd-devel で解決。
【プロキシ経由でインストール】
pip3 --proxy=http://192.168.x.xxx:3128 install python-dateutil
# yum install python36 python36-libs python36-devel
# python36 -m ensurepip # pip を使えるようにする。
【VENV仮想環境の構築】
# cd /usr/local
# python36 -m venv venv36
# chmod -R a+w venv36 ※インストールFIX後戻す。chmod -R go-w vnen36
$ source /usr/local/venv36/bin/activate
※下記環境がセットされる。
VIRTUAL_ENV=/usr/local/venv/venv36
PATH=/usr/local/venv/venv36/bin:$PATH
deactivate () {}
【PATHの確認】$ python36 -c "import sys; print(sys.path)"
['', '/usr/lib64/python36.zip', '/usr/lib64/python3.6', '/usr/lib64/python3.6/lib-dynload', '/usr/local/venv36/lib64/python3.6/site-packages', '/usr/local/venv36/lib/python3.6/site-packages']
※pipインストール確認
$ pip3 install --upgrade pip
$ pip3 install --upgrade pip --proxy=http://192.168.1.254:3128
$ pip3 list
$ pip3 list --outdated
$ pip3 list --outdated | awk 'NR>2 {print $1}' | xargs pip3 install -U
$ pip3 freeze>requirements.txt
$ pip3 install -r requirements.txt
【proxy下】
$ pip3 install --upgrade pip --proxy=http://user:pwss@192.168.25.254:3128
※エラー発生
'missing Apache httpd server packages.' % APXS)
RuntimeError: The 'apxs' command appears not to be installed or is not executable. Please check the list of prerequisites in the documentation for this package and install any missing Apache httpd server packages.
----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-install-zxt5kngl/mod-wsgi/
【プロキシ経由でインストール】
pip3 --proxy=http://192.168.x.xxx:3128 install python-dateutil
【Djangoのインストール】
$ pip3 install Django
# vi /etc/profile.d/oracle.sh
export LD_LIBRARY_PATH=/opt/libs/oracle:$LD_LIBRARY_PATH
# . /etc/profile
# vi /etc/sysconfig/httpd
LD_LIBRARY_PATH=/opt/libs/oracle:$LD_LIBRARY_PATH
【例1】
import os
import sys
import glob
import shutil
import datetime
import smtplib
from email.mime.text import MIMEText
from email.utils import formatdate
$ ls -l /usr/local/venv/venv36/lib/python3.6/site-packages/django # 確認
【excelの読み書き】
# python36 -m pip install openpyxl # excelの読み書きを使えるようにする。
ここから該当バージョンのドライバをタウンロード
https://www.oracle.com/technetwork/jp/database/features/instant-client/index-352321-ja.html
instantclient-basic-linux.x64-11.2.0.4.0.zip
# cd /opt/libs
# unzip instantclient-basic-linux.x64-11.2.0.4.0.zip
# ln -s /opt/libs/instantclient_11_2 /opt/libs/oracle
【excelの読み書き】
# python36 -m pip install openpyxl # excelの読み書きを使えるようにする。
【oracleと接続】
# python36 -m pip install cx_oracleここから該当バージョンのドライバをタウンロード
https://www.oracle.com/technetwork/jp/database/features/instant-client/index-352321-ja.html
instantclient-basic-linux.x64-11.2.0.4.0.zip
# cd /opt/libs
# unzip instantclient-basic-linux.x64-11.2.0.4.0.zip
# ln -s /opt/libs/instantclient_11_2 /opt/libs/oracle
# vi /etc/profile.d/oracle.sh
export LD_LIBRARY_PATH=/opt/libs/oracle:$LD_LIBRARY_PATH
# . /etc/profile
# vi /etc/sysconfig/httpd
LD_LIBRARY_PATH=/opt/libs/oracle:$LD_LIBRARY_PATH
# vi /etc/ld.so.conf.d/oracle.conf
/opt/libs/oracle
# ldconfig
# ldconfig -p |grep libclntsh
【確認】
$ python36
>>> import cx_Oracle
>>> cx_Oracle.clientversion()
(11, 2, 0, 4, 0)
# python36 -m pip install --upgrade pip
【確認】
$ python36
>>> import cx_Oracle
>>> cx_Oracle.clientversion()
(11, 2, 0, 4, 0)
いつも上手く行くのになぜかエラー
cx_Oracle.DatabaseError: DPI-1047: Cannot locate a 64-bit Oracle Client library: "/opt/libs/oracle/lib/libclntsh.so: cannot open shared object file: No such file or directory".
# vi /etc/ld.so.conf.d/oracle.conf
/opt/libs/oracle
# ldconfig
# ldconfig -p |grep libclntsh
# dnf install libnsl
# python3
> import ctypes
> ctypes.cdll.LoadLibrary('/opt/libs/oracle/libclntsh.so.11.1')
→動いた!!
なぜ? いつもは不要なのに!!
# python36 -m pip list
Package Version
---------- -------
cx-Oracle 7.0.0
et-xmlfile 1.0.1
jdcal 1.4
openpyxl 2.5.12
pip 18.1
setuptools 39.0.1
Package Version
---------- -------
cx-Oracle 7.0.0
et-xmlfile 1.0.1
jdcal 1.4
openpyxl 2.5.12
pip 18.1
setuptools 39.0.1
※python Ver2と共存可能。
# python test.py
# python36 test.py
【例1】
# vi excel.py
#!/usr/bin/env python
import openpyxl as excel
wb = excel.Workbook()
ws = wb.active
ws["A1"] = "こんにちは"
wb.save("hello.xlsx")
print("save end")
【例2】
#!/usr/bin/env python
import cx_Oracle
HOST='192.168.xx.xxx'
PORT = '1521'
SID = 'xxxxxxxx'
tns = cx_Oracle.makedsn(HOST, PORT, SID)
conn = cx_Oracle.connect("userID", "password", tns)
print ( conn.version)
cur = conn.cursor()
print ( conn.version)
#cur.execute("""SELECT INSTANCE_NAME,HOST_NAME FROM v$instance""")
#rows = cur.fetchall()
#for r in rows:
# print("%d : %s" % (r[0], r[1]))
#!/usr/bin/env python
import openpyxl as excel
wb = excel.Workbook()
ws = wb.active
ws["A1"] = "こんにちは"
wb.save("hello.xlsx")
print("save end")
【例2】
#!/usr/bin/env python
import cx_Oracle
HOST='192.168.xx.xxx'
PORT = '1521'
SID = 'xxxxxxxx'
tns = cx_Oracle.makedsn(HOST, PORT, SID)
conn = cx_Oracle.connect("userID", "password", tns)
print ( conn.version)
cur = conn.cursor()
print ( conn.version)
#cur.execute("""SELECT INSTANCE_NAME,HOST_NAME FROM v$instance""")
#rows = cur.fetchall()
#for r in rows:
# print("%d : %s" % (r[0], r[1]))
【例3】
# vi test.py
#!/usr/bin/env pythonimport os
import sys
import glob
import shutil
import datetime
import smtplib
from email.mime.text import MIMEText
from email.utils import formatdate
down_dir = sys.argv[1]
data_dir = sys.argv[2]
store_dir = sys.argv[3]
office_dir = sys.argv[4]
time_report = sys.argv[5]
FROM_ADDRESS = 'xxxxx@xxxx.xx.xx'
MY_PASSWORD = 'yyyyy'
TO_ADDRESS = 'zzzz@zzzzzz.zz.zz'
BCC = 'xxxxx@xxxxxx.xx.xxp'
data_dir = sys.argv[2]
store_dir = sys.argv[3]
office_dir = sys.argv[4]
time_report = sys.argv[5]
FROM_ADDRESS = 'xxxxx@xxxx.xx.xx'
MY_PASSWORD = 'yyyyy'
TO_ADDRESS = 'zzzz@zzzzzz.zz.zz'
BCC = 'xxxxx@xxxxxx.xx.xxp'
SUBJECT = 'title'
BODY = 'body'
def create_message(from_addr, to_addr, bcc_addrs, subject, body):
msg = MIMEText(body)
msg['Subject'] = subject
msg['From'] = from_addr
msg['To'] = to_addr
msg['Bcc'] = bcc_addrs
msg['Date'] = formatdate()
return msg
def send(from_addr, to_addrs, msg):
smtpobj = smtplib.SMTP('localhost', 25)
smtpobj.ehlo()
# smtpobj.starttls()
smtpobj.ehlo()
# smtpobj.login(FROM_ADDRESS, MY_PASSWORD)
smtpobj.sendmail(from_addr, to_addrs, msg.as_string())
smtpobj.close()
BODY = 'body'
def create_message(from_addr, to_addr, bcc_addrs, subject, body):
msg = MIMEText(body)
msg['Subject'] = subject
msg['From'] = from_addr
msg['To'] = to_addr
msg['Bcc'] = bcc_addrs
msg['Date'] = formatdate()
return msg
def send(from_addr, to_addrs, msg):
smtpobj = smtplib.SMTP('localhost', 25)
smtpobj.ehlo()
# smtpobj.starttls()
smtpobj.ehlo()
# smtpobj.login(FROM_ADDRESS, MY_PASSWORD)
smtpobj.sendmail(from_addr, to_addrs, msg.as_string())
smtpobj.close()
def maillog(subject , body):
msg = create_message(FROM_ADDRESS, TO_ADDRESS, BCC, subject, body)
send(FROM_ADDRESS, TO_ADDRESS, msg)
def utf2sjis( src, dst ):
with open( dst, 'w', encoding='cp932') as fout:
with open( src , encoding='utf-8') as fin:
fout.write(fin.read())
for download_dir, dirs, files in os.walk(down_dir):
num = len(files)
maillog( "START Credit daily process %d files downloaded(%s)" % ( num, time_report) , "%8d files downloaded to %-30s(Execution time:%s)" % (num, download_dir, time_report ))
for name in glob.glob( download_dir+"/*" ):
bname = os.path.basename( name )
start = bname.find( "SERCHCHARACTER_" ) + len( "SERCHCHARACTER_" )
year = bname[ start : start + 4 ]
month = bname[ start + 4 : start + 6 ]
day = bname[ start + 6 : start + 8 ]
if int(day) < 16:
term = "A"
else:
term = "B"
folder= data_dir + "/" + year + month + term
dname = folder + "/" + bname
sname = store_dir + "/" + bname
oname = office_dir + "/" + bname
if os.path.exists( folder ):
if os.path.exists( dname ):
shutil.move( dname, dname + ".dup" + datetime.datetime.now().strftime("%Y%m%d%H%M%S.%f"))
maillog( "WARNING File Duplicate %s" % bname, "%s is allready exist.(data)" % dname )
else:
os.mkdir( folder )
shutil.move( name, folder )
if os.path.exists( sname ):
shutil.move( sname, sname + ".dup" + datetime.datetime.now().strftime("%Y%m%d%H%M%S.%f"))
maillog( "WARNING File Duplicate %s" % bname, "%s is allready exist.(ToSend1)" % sname )
send(FROM_ADDRESS, TO_ADDRESS, msg)
def utf2sjis( src, dst ):
with open( dst, 'w', encoding='cp932') as fout:
with open( src , encoding='utf-8') as fin:
fout.write(fin.read())
for download_dir, dirs, files in os.walk(down_dir):
num = len(files)
maillog( "START Credit daily process %d files downloaded(%s)" % ( num, time_report) , "%8d files downloaded to %-30s(Execution time:%s)" % (num, download_dir, time_report ))
for name in glob.glob( download_dir+"/*" ):
bname = os.path.basename( name )
start = bname.find( "SERCHCHARACTER_" ) + len( "SERCHCHARACTER_" )
year = bname[ start : start + 4 ]
month = bname[ start + 4 : start + 6 ]
day = bname[ start + 6 : start + 8 ]
if int(day) < 16:
term = "A"
else:
term = "B"
folder= data_dir + "/" + year + month + term
dname = folder + "/" + bname
sname = store_dir + "/" + bname
oname = office_dir + "/" + bname
if os.path.exists( folder ):
if os.path.exists( dname ):
shutil.move( dname, dname + ".dup" + datetime.datetime.now().strftime("%Y%m%d%H%M%S.%f"))
maillog( "WARNING File Duplicate %s" % bname, "%s is allready exist.(data)" % dname )
else:
os.mkdir( folder )
shutil.move( name, folder )
if os.path.exists( sname ):
shutil.move( sname, sname + ".dup" + datetime.datetime.now().strftime("%Y%m%d%H%M%S.%f"))
maillog( "WARNING File Duplicate %s" % bname, "%s is allready exist.(ToSend1)" % sname )
if os.path.exists( oname ):
shutil.move( oname, oname + ".dup" + datetime.datetime.now().strftime("%Y%m%d%H%M%S.%f"))
maillog( "WARNING File Duplicate %s" % bname, "%s is allready exist.(ToSend2)" % oname )
utf2sjis( dname, oname )
shutil.copy( oname, sname )
#today = datetime.date.today().day
#yesterday = datetime.datetime.now() - datetime.timedelta(days=1)
#
#if today == 1 or today == 16:
#
# if today == 16:
# term = "A"
# else:
# term = "B"
#
# term_folder = yesterday.strftime( "%Y%m" ) + term
#
# office_folder = office_dir + "/" + term_folder
#
# if os.path.exists( office_folder ):
# shutil.move( office_folder, office_folder + ".dup" + datetime.datetime.now().strftime("%Y%m%d%H%M%S.%f"))
# maillog( 'WARNING File Duplicate', "%s is allready exist.(ToSend2)" % office_folder )
#
# shutil.copytree( data_dir + "/" + term_folder, office_folder )
shutil.move( oname, oname + ".dup" + datetime.datetime.now().strftime("%Y%m%d%H%M%S.%f"))
maillog( "WARNING File Duplicate %s" % bname, "%s is allready exist.(ToSend2)" % oname )
utf2sjis( dname, oname )
shutil.copy( oname, sname )
#today = datetime.date.today().day
#yesterday = datetime.datetime.now() - datetime.timedelta(days=1)
#
#if today == 1 or today == 16:
#
# if today == 16:
# term = "A"
# else:
# term = "B"
#
# term_folder = yesterday.strftime( "%Y%m" ) + term
#
# office_folder = office_dir + "/" + term_folder
#
# if os.path.exists( office_folder ):
# shutil.move( office_folder, office_folder + ".dup" + datetime.datetime.now().strftime("%Y%m%d%H%M%S.%f"))
# maillog( 'WARNING File Duplicate', "%s is allready exist.(ToSend2)" % office_folder )
#
# shutil.copytree( data_dir + "/" + term_folder, office_folder )
2018年7月13日金曜日
CentOS7 libreoffice インストール
2025/01/24追記
ダウンロード
LibreOffice_24.8.4_Linux_x86-64_rpm.tar.gz
LibreOffice_24.8.4_Linux_x86-64_rpm_helppack_ja.tar.gz
LibreOffice_24.8.4_Linux_x86-64_rpm_langpack_ja.tar.gz
# dnf remove libreoffice*
# cd LibreOffice_24.8.4_Linux_x86-64_rpm/RPMS
# dnf install *.rpm
# cd LibreOffice_24.8.4.2_Linux_x86-64_rpm_helppack_ja/RPMS
# dnf install *.rpm
# cd LibreOffice_24.8.4.2_Linux_x86-64_rpm_langpack_ja/RPMS
# dnf install *.rpm
#--------------------------------------------------------------
まず、現行バージョンを消す。# yum remove libreoffice*
ここからダウンロード
https://ja.libreoffice.org/download/libreoffice/
# tar xvzf LibreOffice_6.0.5_Linux_x86-64_rpm.tar.gz
# cd LibreOffice_6.0.5.2_Linux_x86-64_rpm/RPMS
# rpm -Uvh *.rpm
# tar xvzf LibreOffice_6.0.5_Linux_x86-64_rpm_langpack_ja.tar.gz
# cd LibreOffice_6.0.5.2_Linux_x86-64_rpm_langpack_ja/RPMS
# ls -l
合計 796
-rw-r--r--. 1 root root 802623 6月 20 17:07 libobasis6.0-ja-6.0.5.2-2.x86_64.rpm
-rw-r--r--. 1 root root 9117 6月 20 17:07 libreoffice6.0-ja-6.0.5.2-2.x86_64.rpm
# rpm -Uvh *.rpm
2020/08/04 追記
CentOS8 にインストール
CentOS Linux release 8.2.2004 (Core)
https://ja.libreoffice.org/download/download/
Supplementary Downloads:
日本語パッケージ: 翻訳されたユーザーインターフェース: 日本語 (Torrent, 情報)
# tar xvzf LibreOffice_6.4.5_Linux_x86-64_rpm.tar.gz
# cd LibreOffice_6.4.5.2_Linux_x86-64_rpm/RPMS
# dnf install *.rpm
# tar xvzf LibreOffice_6.4.5_Linux_x86-64_rpm_langpack_ja.tar.gz
# cd LibreOffice_6.4.5.2_Linux_x86-64_rpm_langpack_ja/RPMS
# dnf install *.rpm
clam AntiVirusを設定してみた。
#---------------------------------------------------------------------------------
# CentOS8にClam AntiVirusを設定してみた。(追記)
#---------------------------------------------------------------------------------
# cat /etc/redhat-release
CentOS Linux release 8.4.2105
# dnf --enablerepo=epel install clamav clamav-scanner-systemd clamav-update
# dnf list|grep clam
clamav.x86_64 0.103.2-1.el8 @epel
clamav-filesystem.noarch 0.103.2-1.el8 @epel
clamav-lib.x86_64 0.103.2-1.el8 @epel
clamav-update.x86_64 0.103.2-1.el8 @epel clamd.x86_64 0.103.2-1.el8 @epel
clamav-data.noarch 0.103.2-1.el8 epel
clamav-devel.x86_64 0.103.2-1.el8 epel
clamav-milter.x86_64 0.103.2-1.el8 epel
clamav-unofficial-sigs.noarch 7.2.4-1.el8 epel
# ln -s /etc/clamd.d/scan.conf /etc/clamd.conf
# vi /etc/clamd.conf
#Example
LogFile /var/log/clamd.scan
LogFileMaxSize 2M
LogTime yes
LogRotate yes
LocalSocket /var/run/clamd.scan/clamd.sock
FixStaleSocket yes
ExcludePath ^/proc/
ExcludePath ^/sys/
ExcludePath ^/dev/
User root # user clamscan
LogFile /var/log/clamd.scan
LogFileMaxSize 2M
LogTime yes
LogRotate yes
LocalSocket /var/run/clamd.scan/clamd.sock
FixStaleSocket yes
ExcludePath ^/proc/
ExcludePath ^/sys/
ExcludePath ^/dev/
# vi /etc/freshclam.conf
#Example
DatabaseDirectory /var/lib/clamav
UpdateLogFile /var/log/freshclam.log/
LogFileMaxSize 2M
LogTime yes
LogRotate yes
DatabaseOwner root
DatabaseMirror database.clamav.net
NotifyClamd /etc/clamd.d/scan.conf
HTTPProxyServer http://192.168.254.254
HTTPProxyPort 3128
# vi /etc/sysconfig/freshclam
※ FRESHCLAM_DELAYをコメントアウト(自動アップデート設定)
→ファイルが存在しなかったので、スキップ
# freshclam
# systemctl enable clamd@scan
# systemctl start clamd@scan# vi /etc/cron.daily/clamscan.sh
#!/bin/bash
PATH=/usr/bin:/bin
dnf -y update clamav-server clamav-data clamav-update clamav-filesystem clamav clamav-scanner-systemd clamav-devel clamav-lib clamav-server-systemd > /dev/null 2>&1
freshclam > /dev/null
CLAMSCANTMP=`mktemp`
clamdscan /boot /dev /etc /home /media /mnt /opt /proc /root /run /srv /sys /tmp /usr /var --remove > $CLAMSCANTMP 2>&1
[ ! -z "$(grep FOUND$ $CLAMSCANTMP)" ] && \
grep FOUND$ $CLAMSCANTMP | mail -s "Virus Found in `hostname`" root
[ -z "$(grep FOUND$ $CLAMSCANTMP)" ] && \
echo "clamdscan normal end" | mail -s "Virus Not Found in `hostname`" root
rm -f $CLAMSCANTMP
# chown root:root /etc/cron.daily/clamscan.sh
# chmod 755 /etc/cron.daily/clamscan.sh
除外ディレクトリの設定
# vi /etc/clamd.d/scan.conf
ExcludePath ^/boot/
ExcludePath ^/proc/
ExcludePath ^/sys/
ExcludePath ^/dev/
ExcludePath ^/etc/shadow
ExcludePath ^/etc/shadow-
ExcludePath ^/etc/gshadow
ExcludePath ^/etc/gshadow-
ExcludePath ^/etc/audit/
ExcludePath ^/etc/security/
ExcludePath ^/etc/selinux/targeted/
ExcludePath ^/etc/selinux/semanage.conf
ExcludePath ^/etc/selinux/config
ExcludePath ^/var/log/audit/
SElinux
# setsebool -P antivirus_can_scan_system 1
# setsebool -P antivirus_use_jit 1
# getsebool -a | grep antiv
antivirus_can_scan_system --> on
antivirus_use_jit --> on
※ 膨大にメモリーを消費する(スワップ発生)
# vi /usr/lib/systemd/system/clamd@.service
[Unit]
Description = clamd scanner (%i) daemon
Documentation=man:clamd(8) man:clamd.conf(5) https://www.clamav.net/documents/
After = syslog.target nss-lookup.target network.target
[Service]
Type = forking
ExecStart = /usr/sbin/clamd -c /etc/clamd.d/%i.conf
# Reload the database
ExecReload=/bin/kill -USR2 $MAINPID
Restart = on-failure
TimeoutStartSec=420
#IOSchedulingPriority = 7
#CPUSchedulingPolicy = other
#CPUSchedulingPriority = 5
MemoryLimit=512M
CPUQuota=30%
#Nice = 19
[Install]
WantedBy = multi-user.target
#---------------------------------------------------------------------------------
# CentOS7にClam AntiVirusを設定してみた。
#---------------------------------------------------------------------------------
# cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)
# yum -y install epel-release.noarch
CentOS Linux release 7.5.1804 (Core)
# yum -y install epel-release.noarch
# yum list | grep clam
clamav.x86_64 0.100.0-2.el7 @epel
clamav-data.noarch 0.100.0-2.el7 @epel
clamav-devel.x86_64 0.100.0-2.el7 @epel
clamav-filesystem.noarch 0.100.0-2.el7 @epel
clamav-lib.x86_64 0.100.0-2.el7 @epel
clamav-scanner-systemd.x86_64 0.100.0-2.el7 @epel
clamav-server-systemd.x86_64 0.100.0-2.el7 @epel
clamav-update.x86_64 0.100.0-2.el7 @epel
clamd.x86_64 0.100.0-2.el7 @epel
clamav-data-empty.noarch 0.100.0-2.el7 epel
clamav-milter.x86_64 0.100.0-2.el7 epel
clamav-milter-systemd.x86_64 0.100.0-2.el7 epel
clamav-unofficial-sigs.noarch 3.7.2-1.el7 epel
clamsmtp.x86_64 1.10-12.el7 epel
※すべてepelを確認。
# yum install clamav-server clamav-data clamav-update clamav-filesystem clamav clamav-scanner clamav-scanner-systemd clamav-devel clamav-lib clamav-server-systemd
=================================================================================
Package アーキテクチャー バージョン リポジトリー 容量
=================================================================================
インストール中:
clamav x86_64 0.100.0-2.el7 epel 639 k
clamav-server-systemd x86_64 0.100.0-2.el7 epel 25 k
clamav-update x86_64 0.100.0-2.el7 epel 99 k
clamd x86_64 0.100.0-2.el7 epel 118 k
clamav-devel x86_64 0.100.0-2.el7 epel 45 k
clamav-scanner-systemd x86_64 0.100.0-2.el7 epel 25 k
依存性関連でのインストールをします:
clamav-data noarch 0.100.0-2.el7 epel 158 M
clamav-filesystem noarch 0.100.0-2.el7 epel 26 k
clamav-lib x86_64 0.100.0-2.el7 epel 755 k
=================================================================================
clamav.x86_64 0.100.0-2.el7 @epel
clamav-data.noarch 0.100.0-2.el7 @epel
clamav-devel.x86_64 0.100.0-2.el7 @epel
clamav-filesystem.noarch 0.100.0-2.el7 @epel
clamav-lib.x86_64 0.100.0-2.el7 @epel
clamav-scanner-systemd.x86_64 0.100.0-2.el7 @epel
clamav-server-systemd.x86_64 0.100.0-2.el7 @epel
clamav-update.x86_64 0.100.0-2.el7 @epel
clamd.x86_64 0.100.0-2.el7 @epel
clamav-data-empty.noarch 0.100.0-2.el7 epel
clamav-milter.x86_64 0.100.0-2.el7 epel
clamav-milter-systemd.x86_64 0.100.0-2.el7 epel
clamav-unofficial-sigs.noarch 3.7.2-1.el7 epel
clamsmtp.x86_64 1.10-12.el7 epel
※すべてepelを確認。
# yum install clamav-server clamav-data clamav-update clamav-filesystem clamav clamav-scanner clamav-scanner-systemd clamav-devel clamav-lib clamav-server-systemd
=================================================================================
Package アーキテクチャー バージョン リポジトリー 容量
=================================================================================
インストール中:
clamav x86_64 0.100.0-2.el7 epel 639 k
clamav-server-systemd x86_64 0.100.0-2.el7 epel 25 k
clamav-update x86_64 0.100.0-2.el7 epel 99 k
clamd x86_64 0.100.0-2.el7 epel 118 k
clamav-devel x86_64 0.100.0-2.el7 epel 45 k
clamav-scanner-systemd x86_64 0.100.0-2.el7 epel 25 k
依存性関連でのインストールをします:
clamav-data noarch 0.100.0-2.el7 epel 158 M
clamav-filesystem noarch 0.100.0-2.el7 epel 26 k
clamav-lib x86_64 0.100.0-2.el7 epel 755 k
=================================================================================
# ln -s /etc/clamd.d/scan.conf /etc/clamd.conf
# vi /etc/clamd.conf
#Example
LogFile /var/log/clamd.scan
LogFileMaxSize 2M
LogTime yes
LogRotate yes
LocalSocket /var/run/clamd.scan/clamd.sock
FixStaleSocket yes
ExcludePath ^/proc/
ExcludePath ^/sys/
ExcludePath ^/dev/
User root
#Example
DatabaseDirectory /var/lib/clamav
UpdateLogFile /var/log/freshclam.log
LogFileMaxSize 2M
LogTime yes
LogRotate yes
DatabaseOwner root
DatabaseMirror database.clamav.net
NotifyClamd /etc/clamd.d/scan.conf
※ FRESHCLAM_DELAYをコメントアウト(自動アップデート設定)
# freshclam
# systemctl enable clamd@scan
# systemctl start clamd@scan# vi /etc/cron.daily/clamscan.sh
#!/bin/bash
PATH=/usr/bin:/bin
yum -y update clamav-server clamav-data clamav-update clamav-filesystem clamav clamav-scanner clamav-scanner-systemd clamav-devel clamav-lib clamav-server-systemd > /dev/null 2>&1
freshclam > /dev/null
CLAMSCANTMP=`mktemp`
clamdscan /boot /dev /etc /home /media /mnt /opt /proc /root /run /srv /sys /tmp /usr /var --remove > $CLAMSCANTMP 2>&1
clamdscan /boot /dev /etc /home /media /mnt /opt /proc /root /run /srv /sys /tmp /usr /var --remove > $CLAMSCANTMP 2>&1
[ ! -z "$(grep FOUND$ $CLAMSCANTMP)" ] && \
grep FOUND$ $CLAMSCANTMP | mail -s "Virus Found in `hostname`" root
[ -z "$(grep FOUND$ $CLAMSCANTMP)" ] && \
echo "clamdscan normal end" | mail -s "Virus Not Found in `hostname`" root
rm -f $CLAMSCANTMP
# chown root:root /etc/cron.daily/clamscan.sh
# chmod 755 /etc/cron.daily/clamscan.sh
# chmod 755 /etc/cron.daily/clamscan.sh
除外ディレクトリの設定
# vi /etc/clamd.d/scan.conf
ExcludePath ^/boot/
ExcludePath ^/proc/
ExcludePath ^/sys/
ExcludePath ^/dev/
ExcludePath ^/etc/shadow
ExcludePath ^/etc/shadow-
ExcludePath ^/etc/gshadow
ExcludePath ^/etc/gshadow-
ExcludePath ^/etc/audit/
ExcludePath ^/etc/security/
ExcludePath ^/etc/selinux/targeted/
ExcludePath ^/etc/selinux/semanage.conf
ExcludePath ^/etc/selinux/config
ExcludePath ^/var/log/audit/
ExcludePath ^/dev/
ExcludePath ^/etc/shadow
ExcludePath ^/etc/shadow-
ExcludePath ^/etc/gshadow
ExcludePath ^/etc/gshadow-
ExcludePath ^/etc/audit/
ExcludePath ^/etc/security/
ExcludePath ^/etc/selinux/targeted/
ExcludePath ^/etc/selinux/semanage.conf
ExcludePath ^/etc/selinux/config
ExcludePath ^/var/log/audit/
setsebool -P antivirus_can_scan_system 1
→/usr/lib/tmpfiles.d/clamd.scan.confがインストールされている。
# vi /etc/tmpfiles.d/clamd.conf
#Type Path Mode UID GID Age Argument
echo "d /var/run/clamav 0755 root root -" > /etc/tmpfiles.d/clamd.conf
systemd-tmpfiles --create clamd.conf
systemctl daemon-reload
まだ、0.100.1は、yumで持ってこれない!!(2018/7/13現在) ちゃっと様子見
# freshclam
Fri Jul 13 17:02:26 2018 -> ^Your ClamAV installation is OUTDATED!
Fri Jul 13 17:02:26 2018 -> ^Local version: 0.100.0 Recommended version: 0.100.1
Fri Jul 13 17:02:26 2018 -> DON'T PANIC! Read https://www.clamav.net/documents/upgrading-clamav
# clamd --v
ClamAV 0.100.0/24748/Fri Jul 13 13:55:05 2018
# clamdscan -v /root /tmp /etc /opt /var /usr /home
/root: OK
/tmp: OK
/etc: OK
/opt: OK
/var: OK
/usr: OK
/home: OK
----------- SCAN SUMMARY -----------
Infected files: 0
Time: 1099.922 sec (18 m 19 s)
# permission error が多発するばあい。
sudo clamdscan --fdpass /var
SElinux
# setsebool -P antivirus_can_scan_system 1
# setsebool -P antivirus_use_jit 1
# getsebool -a | grep antiv
antivirus_can_scan_system --> on
antivirus_use_jit --> on
登録:
投稿 (Atom)
Rocky Linux9.8 Docker インストール
# cat /etc/redhat-release Rocky Linux release 9.8 (Blue Onyx) # dnf remove docker docker-client docker-client-latest docker-common docker...
-
■Rocky Linux8 ORACLE RPM インストール # curl -o oracle-database-preinstall-19c-1.0-2.el8.x86_64.rpm https://yum.oracle.com/repo/OracleLinux/OL8/ap...
-
$ alias sqlplus='rlwrap -pRed -if /usr/local/opt/rlwrap-extensions/sqlplus sqlplus64' $ sqlplus user/password@192.168.1.xxx:1521/sid...
-
【タイムゾーンと日本語】 $ sudo timedatectl set-timezone Asia/Tokyo $ sudo timedatectl $ sudo localectl set-locale LANG=ja_JP.utf8 $ sudo localectl 【プロキ...