標籤

bat (54) 作品 (41) python (24) shell (17) windows (11) 虛擬機 (11) php (10) CPP (6) KMS (6) 程式設計 (6) docker (5) 使用教學 (5) xoops (4) 公文 (4) Apache2 (3) Excel (3) juniper (3) 資料庫 (3) 轉檔 (3) mysql (2) 免動手 (2) 資料結構 (2) 軟體廣播 (2) 電腦維修 (2) Android Studio (1) Apple IPAD管理 (1) Arduino (1) CSS (1) LAMP (1) NAS (1) Ubuntu (1) VHD (1) Windows Server (1) 原因 (1) 程式應用 (1) 程式積木 (1) 編輯器 (1) 雲端硬碟 (1)

2021年2月23日 星期二

如何開啟Google信件服務備份的檔案


        現在將開啟Google備份分頁.BAT與Windows MBox Viewer打包成一個壓縮檔。提供大家方便下載。
       檔案下載,解壓密碼:demo1234

        教學影片:

其流程為

進行步驟: 1.下載Windows MBox Viewer 2.解壓縮 mbox-viewer.exe-v1.0.3.19.zip 3.進入資料夾 mbox-viewer.exe-v1.0.3.19 4.點選 mboxview.exe 5.下載信件備份 或是 點選 開啟Google備份分頁.BAT,取得信件備份。 6.解壓縮信件備份。 7.開啟信件備份。


        如何取得信件備份?

        請對 開啟Google備份分頁.BAT 點兩下,其程式碼如下

檔案名稱:開啟Google備份分頁.BAT
檔案內容:
@echo off
start C:\"Program Files (x86)\Google\Chrome\Application"\chrome.exe https://takeout.google.com/settings/takeout

就會進入Google備份分頁,其樣式如下:
下載後,解壓縮。

      如何開啟郵件備份下來的檔案?要用Windows MBox Viewer來開啟。

下載網址Windows MBox Viewer,點選Windows MBox Viewer,進入下載頁面,如下:


下載後的檔案為壓縮檔,需解壓縮。解壓縮後的檔案如下:
點選mboxview.exe,即可進入程式頁面。
接下來開啟信件備份,其操作方法如下圖:
或是




如何用滑鼠點兩下,進入Google 備份分頁,進行郵件備份

       最近Google 取消教育單位無限空間容量,那要如何備份?上網查一下,發現有Google TakeOut 的工具。那要如何指導老師使用這項工具?希望能建立一個BAT,讓老師點兩下就能進入Google TakeOut 備份分頁進行備份。另外。下載後的檔案要如何開啟?

       現在將開啟Google備份分頁.BAT與Windows MBox Viewer打包成一個壓縮檔。提供大家方便下載。
       檔案下載,解壓密碼:demo1234


       開啟Google備份分頁.BAT使用方法:
                         
其流程如下:
1.請先登入 2.開新分頁 3.輸入網址:https://takeout.google.com/settings/takeout 或是 點選批次檔:開啟Google備份分頁.BAT 4.取消全選 5.點選 要備份的google服務 6.點選 包含所有郵件資料 7.取消 納入「郵件」中的所有訊息--全選 8.針對要備份的部分打勾 --確定 --下一步 9.選擇僅匯出一次--建立匯出作業


檔案下載,解壓密碼:demo1234。內有一個BAT,其功能為開啟Google備份分頁。
檔案名稱:開啟Google備份分頁.BAT
檔案內容:
@echo off
start C:\"Program Files (x86)\Google\Chrome\Application"\chrome.exe https://takeout.google.com/settings/takeout



       那接下來的問題就是...如何開啟?如何開啟Google信件服務備份的檔案


資料來源:

2021年2月22日 星期一

如何用shell快速建立自己的docker-nginx-php-mysql開發環境

 前一篇:建立在CentOS上的 docker 與 mongodb 介紹

經過陳瑩光老師指導後,希望能夠用shell快速完成自己專案開發環境
一、安裝前準備
1.確認安裝版本:
    docker 會呼叫 linux kernel 的 Namespace 與 Cgroup,所以建議使用 CentOS 7。
2.使用虛擬機

二、shell檔案快速完成
檔名:DockerEnvInstall.sh
檔案內容:
#!/bin/bash
yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine
yum install -y yum-utils
yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo
yum install docker-ce docker-ce-cli containerd.io
systemctl start docker
curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose version
yum install git
mkdir test
cd test
git clone https://github.com/mark2470mark/docker-nginx-php-mysql.git
cd ~/test/docker-nginx-php-mysql
docker-compose up -d
docker-compose ps

三、設定DockerEnvInstall.sh為可執行
$sudo chmod 755 DockerEnvInstall.sh
$sudo sh DockerEnvInstall.sh

四、設定git
1.命令列建立新的repository
echo "# docker-nginx-php-mysql" >> README.md
git init
git add README.md
git commit -m "first commit"
git branch -M main
git remote add origin https://github.com/mark2470mark/docker-nginx-php-mysql.git
git push -u origin main

2.命令列上傳到既有的repository
git remote add origin https://github.com/mark2470mark/docker-nginx-php-mysql.git
git branch -M main
git push -u origin main


只要會用滑鼠點兩下,一鍵下載Google Drive 的檔案

 

檔案下載 解壓密碼demo1234

如何使用?
1.請先取得FILEID與FILENAME
   那要如何取得FILEID與FILENAME?
2.檔案下載,解壓密碼demo1234
3.解壓縮WgetGoogleDriver.rar->產生資料夾WgetGoogleDriver
4.修改資料夾WgetGoogleDriver內的WgetGoogleDriver.bat,將FILEIDFILENAME填入
5.對WgetGoogleDriver.bat點兩下,即可完成下載。


檔案名稱:WgetGoogleDriver.bat
檔案內容:
@echo off
REM -----------------可設定FILEID與FILENAME----------------
set FILEID=1kz6WWMz0KNCQD0QV8A6AK8bYZZTh2UZQ
set FILENAME=5a88tni.7z
REM -----------------以下不用變更--------------------------

REM 產生下載cookies
wget --save-cookies cookies.txt "https://docs.google.com/uc?export=download&id=%FILEID%" -O-

REM 將下載的網址加上confirm參數
for /f "skip=5 tokens=7" %%i IN (cookies.txt) do echo https://docs.google.com/uc?export=download^&id=%FILEID%^&confirm=%%i > url.txt

REM 開始下載檔案
wget --load-cookies cookies.txt -O %FILENAME% -i url.txt

REM 刪除額外產生的檔案
del cookies.txt url.txt .wget-hsts


以下是初始想法與頂番國小李清展老師指導過程

檔案名稱:WgetGoogleDriver.bat
檔案內容:
@echo off
REM -----------------可設定FILEID與FILENAME----------------
set FILEID=1njaoL11f5fLjORBriyaH3wRmwd_vSir7
set FILENAME=MouseSetting.rar
REM -----------------以下不用變更--------------------------
%~dp0EXE/wget --no-check-certificate -r "https://docs.google.com/uc?export=download&id=%FILEID%" -O %FILENAME%
PAUSE

影片中下載的檔案為7z壓縮檔,可用winrar解壓縮。若要用7-zip解壓縮,64位元作業系統請用下圖所示



問題:這個程式要下載Google 雲端硬碟內.7z的檔案,可以完成下載。但是無法用7-zip解壓縮。需要將檔案的副檔名.7z改為.zip。下載完成後,才能用7-zip解壓縮。換句話說,無法用7-zip解壓縮.7z的檔案。

解答:感恩頂番國小李清展老師指導,提出問題與解決方案。
內提到

export fileid=1sNhrr2u6n48vb5xuOe8P9pTayojQoOc_
export filename=combian.rar

## WGET ##
wget --save-cookies cookies.txt 'https://docs.google.com/uc?export=download&id='$fileid -O- \
     | sed -rn 's/.*confirm=([0-9A-Za-z_]+).*/\1/p' > confirm.txt

wget --load-cookies cookies.txt -O $filename \
     'https://docs.google.com/uc?export=download&id='$fileid'&confirm='$(<confirm.txt)

在linux 執行,會出現兩個檔案分別為cookies.txt與confirm.txt
其內容為
換句話說,要擷取cookies.txt內四碼,並將此四碼存入confirm.txt

頂番國小李清展老師的解決方案如下:
@echo off

SET "w10pe_id=1-dimpG6Ih7tYTEzy_0VcIQIJHJCqkFDl"
SET "w10pe_target=w10pe_C_NTBOOT.7z"

REM 產生下載cookies
wget --save-cookies cookies.txt "https://docs.google.com/uc?export=download&id=%w10pe_id%" -O-

REM 將下載的網址加上confirm參數
for /f "skip=5 tokens=7" %%i IN (cookies.txt) do echo https://docs.google.com/uc?export=download^&id=%w10pe_id%^&confirm=%%i > url.txt

REM 開始下載檔案
wget --load-cookies cookies.txt -O %w10pe_target% -i url.txt

REM 刪除額外產生的檔案
del cookies.txt url.txt .wget-hsts

經過測試之後,完全可以解決原先的問題。
所以改用頂番國小李清展老師的解決方案。






如何用shell在lubuntu 16.04快速安裝GitLab

 1.套件更新

$sudo apt-get update
2.安裝 curl openssh-server ca-certificates postfix tzdata
$sudo apt-get install -y curl openssh-server ca-certificates postfix tzdata
3.下載與安裝GitLab package server
$curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
4.安裝gitlab-ce,檔案很大 8百多M
$sudo apt-get install -y gitlab-ce
5.設定gitlab-ce 
$sudo gitlab-ctl reconfigure
6.修改/etc/gitlab/gitlab.rb
$sudo pico /etc/gitlab/gitlab.rb 
現在將其設定為
external_url 'http://192.168.1.150'


7.重新配置gitlab
$sudo gitlab-ctl reconfigure
8.用chrome瀏覽 http://192.168.1.150




網路收集到CSS 相關文章與響應式網站的無障礙設計與建置實務資料整理

 範例檔案下載,解壓密碼demo1234


1.(常用)在網頁中加入 CSS 設定的方式:外部樣式表 (external style sheet)

外部樣式表是將 CSS 設定寫在另外一個檔案中,再從 HTML 頁面中引入,如下
<link rel="stylesheet" type="text/css" href="./css/style.css">

2.CSS 的虛擬碼

selector {
    property: value;
}
意義:
Selector:該 CSS 設定的目標標籤,ex:body
Property:該 CSS 設定的特性,像是顏色、大小、位置等,ex:background-color
Value:該 CSS 設定的值,ex:blue
body {
    background-color:yellow;
}
那我們將1.跟2.的重點彙整成一個圖片來說明:
檔案名稱:page01.html
檔案內容:
<!DOCTYPE html>
<html>
  <head>
    <title>網頁標題</title>
    <link rel="stylesheet" type="text/css" href="./css/style.css">
  </head>
  <body>
    <h1>這是一級標題</h1>
    <p>這是一個段落</p>
  </body>
</html>

檔案名稱:style.css
檔案內容:
body {
    background-color:yellow;
}

3.關於字體 (Font)的CSS範例

結果:
檔案名稱:page02.html
檔案內容:
<!DOCTYPE html>
<html>
  <head>
    <title>網頁標題</title>
    <link rel="stylesheet" type="text/css" href="./css/page2.css">
  </head>
  <body>
    <h1>Page Title</h1>
    <p>Lorem ipsum dolor sit amet, consectetur adipiscing ...</p>
  </body>
</html>

檔案名稱:page02.css
檔案內容:
h1 {
  font-family: sans-serif;
  text-align: center;
}

p {
  font-family: serif;
  font-size: large;
}
接下來,將sans-serif;與serif;交換
將上述兩途合併成一張圖,其內容如下:
檔案名稱:page02_1.html
檔案內容:
<!DOCTYPE html>
<html>
  <head>
    <title>網頁標題</title>
    <link rel="stylesheet" type="text/css" href="./css/page2_1.css">
  </head>
  <body>
    <h1>Page Title</h1>
    <p>Lorem ipsum dolor sit amet, consectetur adipiscing ...</p>
  </body>
</html>

檔案名稱:page02_1.css
檔案內容:
h1 {
  font-family:  serif;
  text-align: center;
}

p {
  font-family: sans-serif;
  font-size: large;
}

4.關於Box Model的CSS範例

接下來要談到Box Model。那要借用chrome的開發者工具,其設定如下






資料來源:
01.CSS 入門教學




介接CloudSchool服務平台,JWT 實作驗證機制

 0.安裝特殊字型

$sudo yum install -y fonts-courier-prime

1.shell快速安裝開發環境
檔名:DockerEnvInstall.sh
檔案內容:
#!/bin/bash
yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine
yum install -y yum-utils
yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo
yum install docker-ce docker-ce-cli containerd.io
systemctl start docker
curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose version
yum install git
mkdir test
cd test
git clone https://gitlab.cloudschool.com.tw/hami/jwt_test.git
cd ~/test/jwt_test
cp env-sample .env
docker-compose up -d
docker-compose ps
cd ~/test/jwt_test/
docker exec -i jwt_test_php_1 composer install 
cp ~/test/jwt_test/config/local.php.dist ~/test/jwt_test/config/local.php
sed -i 's/root/stern123/2' ~/test/jwt_test/config/local.php
chmod 777 ~/test/jwt_test/data/  -R

重開機後,需要啟動docker,才能執行docker-compose up -d 等指令。
$sudo systemctl start docker

        現在要將data內部的db、mongodb、radis的部分搬家(理由chmod 777 ~/test/jwt_test/data),將mysqldbredismongodb移到mydata
只需要在docker-compose.yml 做修正,
然後下指令 
docker-compose down
docker-compose up -d --build
重新建立mydata即可。

檔案名稱:docker-compose.yml
檔案內容:
version: '3.3'

services:
  php:
    image: hamichen/php-fpm-7.3.14
    volumes:
      - .:/var/app
    ports:
      - "9000:9000"

  nginx:
    build: .docker/nginx/
    depends_on:
      - php
      - mysqldb
    ports:
      - "9011:80"
    links:
      - php
    volumes:
      - .:/var/app

  mysqldb:
    image: mariadb
    env_file:
      - ".env"
    environment:
      - MYSQL_DATABASE=${MYSQL_DATABASE}
      - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
      - MYSQL_USER=${MYSQL_USER}
      - MYSQL_PASSWORD=${MYSQL_PASSWORD}
      - MAX_CONNECTIONS=1024
    volumes:
      - "./mydata/db/mysql:/var/lib/mysql"
      - "./etc/mysql/conf:/etc/mysql/conf.d"
    command: mysqld --sql_mode=""

  myadmin:
    image: phpmyadmin/phpmyadmin
    ports:
      - "9012:80"
    volumes:
      - .docker/php/upload.ini:/usr/local/etc/php/conf.d/php-phpmyadmin.ini
    environment:
      - PMA_ARBITRARY=1
      - PMA_HOSTS=mysqldb
      - UPLOAD_LIMIT= 300000000
    depends_on:
      - mysqldb
  redis:
    image: redis
    command: redis-server --requirepass cs-pass
    ports:
      - "6379"
    volumes:
      - ./mydata/radis:/data

  mongodb:
    image: library/mongo:3.4.9
    volumes:
      - ./mydata/mongodb:/data/db
      - ./mydata/backup:/backup
    command: mongod --auth
    privileged: true
    environment:
      MONGO_INITDB_ROOT_USERNAME: ${MONGO_INITDB_ROOT_USERNAME}
      MONGO_INITDB_ROOT_PASSWORD: ${MONGO_INITDB_ROOT_PASSWORD}
      MONGO_INITDB_DATABASE: ${MONGO_INITDB_DATABASE}

2.手動將資料庫匯入
(1)建立資料庫
     網址輸入http://伺服器IP:9012,打開phpmyadmin的網頁。
     

(2)匯入資料庫sql
這個問題就是要設定cache權限為777,所以下指令
$chmod 777 ~/test/jwt_test/data/ -R


(3)Cloudschool服務平台


        這個平台成立的目的。在過去SFS3的時期,有許多熱血的老師付出自己的時間完成許多模組,比方說運動會檢錄系統。在資安法成立之後,許多服務要向上集中。但不可能把所有過去的模組向上集中,太多也太雜。所以CloudSchool才有後來的API架構,讓大家可以利用API來建立自己的服務。現在更利用這個平台,讓大家介接來完成模組,提供服務。

架構
  
測試流程如下:
2.選擇測試平台->測試國小 13
3.輸入帳號密碼
4.認證完成後,導回服務平台,選擇 協力伙伴測試
5.會進入 http://localhost:9011/login.php?token=xxxx ,即可讀出資料

那上述
2.選擇測試平台->測試國小 13
3.輸入帳號密碼
4.認證完成後,導回服務平台
在架構上為
4.選擇 協力伙伴測試
5.會進入 http://localhost:9011/login.php?token=xxxx ,即可讀出資料
則在架構上為

在docker-nginx-php-mysql開發環境,建立一個簡單的 PHP REST API (一)

 後篇:在docker-nginx-php-mysql開發環境,建立一個簡單的 PHP REST API (二)      

        看了資料來源01 ,竟然第一關就卡關。就開始找資料,希望可以進行實作。
        先來實作,再來處理理論的部分。那以影片1.How To Create A Simple REST API in PHP來實作。
         首先建立開發環境,以docker來做。使用資料依據為
一、shell檔案快速完成
檔名:DockerEnvInstall.sh
檔案內容:
#!/bin/bash
yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine
yum install -y yum-utils
yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo
yum install docker-ce docker-ce-cli containerd.io
systemctl start docker
curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose version
yum install git
mkdir test01
cd test01
git clone https://github.com/mark2470mark/docker-nginx-php-mysql.git
cd ~/test01/docker-nginx-php-mysql
docker-compose up -d
docker-compose ps

重開機後,需要啟動docker,才能執行docker-compose up -d 等指令。
$sudo systemctl start docker

二、設定DockerEnvInstall.sh為可執行
$sudo chmod 755 DockerEnvInstall.sh
$sudo sh DockerEnvInstall.sh
此時的開發環境


三、在mysql建立資料庫,其資料庫名稱為 api 與建立資料表 users
     (1)建立資料庫 api
     (2)建立資料表 users
     (3)建立欄位id(int(10))、name(varchar(20))、age(int(2))
     (4)新增資料
四、建立php檔案
     (1)在~/test01/docker-ngnix-php-mysql/web/public/新增兩個檔案,分別是 config.php與index.php
           檔案名稱:index.php
           檔案內容:
            <?php
               require_once __DIR__.'/config.php';
                class API {
                  function  Select() {
                    $db = new Connect;
                    $users = array();
                    $data = $db->prepare('SELECT * FROM users ORDER BY id');
                    $data->execute();
                       while ($OutputData = $data->fetch(PDO::FETCH_ASSOC)) {
                                    $users[$OutputData['id']] = array(
                                     'id' =>  $OutputData['id'],
                                     'name' =>  $OutputData['name'],
                                      'age' =>  $OutputData['age']
                           );
                       }
                        return json_encode($users);
                     }
                    }
                   $API = new API;
                   header('Content-Type:application/json');
                   echo $API->Select();
                 ?>           
           檔案名稱:config.php
           檔案內容:
           <?php
              class Connect extends PDO {
                  public function __construct() {
                  parent::__construct("mysql:host=mysql;dbname=api",'root','a123456',
    array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
                  $this->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
                  $this->setAttribute(PDO::ATTR_EMULATE_PREPARES,false);
                   }
                  }
                  ?>
五、結果呈現


在虛擬機VirtualBox安裝Windows Server 2019 評估版與設定Hyper-V

         最近開始學習 Windows Server 2019,發現Windows 的發展非常快速。所以將所找到的資料記錄下來,做為日後學習的依據。安裝過程中,沒想到自己卻忽略許多細節。如今透過虛擬機,將畫面擷取。提示自己要注意。




2.設定VirtualBox後安裝









只要點兩下,就能夠將InputAndOutput資料夾底下的子子孫孫資料夾內所有Word通通轉成PDF

  系列文章: 1. 只要點兩下,就能將一堆的Doc與Docx 轉成 PDF 1. https://skjhcreator.blogspot.com/2023/05/docdocx-pdf.html 2. 只要點兩下,就能將一堆的JPG轉成一個PDF,並以JPG所在的資料夾名稱為...