[ubuntu]讓apache顯示目錄列表的配置方法

參考網址:程式前沿

在/etc/apache2/sites-available/default 中 加入IndexOptions Charset=UTF-8

Alias /download “/download”
  <Directory “/download”>
    Options Indexes
    Order allow,deny
    IndexOptions Charset=UTF-8
    Allow from all
  </Directory>

其中“/download”是要顯示檔案列表的目錄,引數”Options Indexes”表示啟用目錄瀏覽,”IndexOptions Charset=UTF-8″設定字符集,以消除中文亂碼。

發表於 Linux系統 | 發表迴響

[3D]tinkercad 與 vivaldi 瀏覽器

參考網址:

不知為什麼chrome、firefox、edge瀏覽器都無法編輯tinkercad的檔案,總是一直轉圈圈。所以就找其它的瀏覽器試試。
vivaldi似乎是個不錯的選擇,但在編輯時常常會無緣無故跳離編輯畫面,嘗試了一下,應是滑鼠手勢的問題,所以就把滑鼠手勢給關掉了。

vivaldi://settings/mouse/


 

發表於 軟體使用 | 發表迴響

[3D]cura安裝印表機

參考網址:
cura是常用的切片軟體可以到ultimaker網站下載
https://ultimaker.com/software/ultimaker-cura
 

網路上可以找到的cura有兩種版本,上面的下載點可以下載到的最新版是V4.8
但在別的地方可以發現竟然有V15.04的版本,不知為何有這樣的情形

安裝後發現這兩種版本的界面並不相同。

如果要安裝非預設的印表機在V15.04的版本中要將印表機的ini檔放到
C:\Program Files (x86)\Cura_15.04\resources\machine_profiles 這個目錄下
 

如果是V4.8就必需將印表機的def.json檔放到
C:\Program Files\Ultimaker Cura 4.8.0\resources\definitions 目錄下

發表於 軟體使用 | 發表迴響

[php]cookie

參考網址:虎搞瞎搞

chrome cookie 存放的位置在:C:\Users\user\AppData\Local\Google\Chrome\User Data\Default
底下會有一個 cookie 檔案,是sqlite 格式存放。


查詢方式可以使用:
select * from cookies where host_key like 'host名稱%'

Tsung's Blog
Chrome 80 之後的版本,預設的 Cookie 設定將會無法跨站存取 Cookie 值,若想要允許 Cookie 跨網站存取的話(SameSite = None),需要使用 HTTPS 才可以。
PHP Cookie SameSite 的設定方式

梅問題 如何查看Chrome瀏覽器中Cookie小餅乾的儲存值
開啟瀏覽器,輸入要查看網址,再點網址列前方的圖示,接著就會看到Cookie小餅乾。
 

發表於 程式設計 | 發表迴響

[sport]心雨競賽管理系統

參考網址:心雨競賽管理系統http://www.sinyu.idv.tw/

用asp開發

發表於 程式設計 | 發表迴響

[sport]賽程表繪製

參考網址:

雙敗淘汰圖形產生器


VBA構建自動化賽程-以花蓮慢速壘球委員會為例

發表於 未分類 | 發表迴響

[linux]sudo 嚴重安全漏洞 (CVE-2021-3156)

參考網址:https://www.facebook.com/twcertcc/posts/2511722805724116

升級 sudo 套件的幾個方法
 

首先,可以使用以下指令確認 sudo 套件版本。

sudo -V

若是你的版本在 1.9.5 以下,最好還是趕快升級比較好(如果你管理伺服器的話,想必不會希望大家都能隨意取得 root 權限)。

 

Step 1: 下載 sudo 安裝檔

前往 https://www.sudo.ws/dist/ 下載 sudo.tar.gz


或是直接使用以下指令:

wget https://www.sudo.ws/dist/sudo.tar.gz

 

Step 2: 解壓縮

tar -zxvf sudo.tar.gz
cd sudo-1.9.5p2/

或許你下載的時候版本已經與我不同。

 

Step 3: 切換成 root 再開始 make

sudo su
./configure --prefix=/usr --libexecdir=/usr/lib --with-secure-path --with-all-insults --with-env-editor --docdir=/usr/share/doc/sudo-1.9.5p2 --with-passprompt="[sudo] password for %p: "
make
make install && ln -sfv libsudo_util.so.0.0.0 /usr/lib/sudo/libsudo_util.so.0

 

Step 4: 確認版本已經更新

sudo -V

Output:

Sudo version 1.9.5p2
Sudoers policy plugin version 1.9.5p2
Sudoers file grammar version 48
Sudoers I/O plugin version 1.9.5p2
Sudoers audit plugin version 1.9.5p2

至此,大功告成。

 

另一篇文章
LINUX 技術手札
$ sudo apt install sudo

發表於 Linux系統 | 發表迴響

[linux]rsync

參考網址:gtwang

Linux 使用 rsync 遠端檔案同步與備份工具教學與範例

rsync 基本用法

rsync 的基本語法結構如下:

rsync 參數 來源檔案 目的檔案

以下是最常見的幾個參數:

  • -v:verbose 模式,輸出比較詳細的訊息。
  • -r:遞迴(recursive)備份所有子目錄下的目錄與檔案。
  • -a:封裝備份模式,相當於 -rlptgoD,遞迴備份所有子目錄下的目錄與檔案,保留連結檔、檔案的擁有者、群組、權限以及時間戳記。
  • -z:啟用壓縮。
  • -h:將數字以比較容易閱讀的格式輸出。

rsync 遠端備份

rsync 也可以用於不同台機器之間的遠端備份,這樣的用法就跟 scp 指令很像,不過 rsync 會更有效率:

rsync -avzh /mypath/myfile.gz pi@192.168.1.12:/mybackup/

這樣就會將本地端的 myfile.gz 備份至 pi@192.168.1.12 的 /mybackup/ 目錄中,在遇到這種遠端備份的狀況時,rsync 預設會以 ssh 的方式登入遠端的機器,所以在執行這行備份指令之後,要接著輸入pi@192.168.1.12 的密碼,接著就會開始備份資料。

自訂 SSH 連接埠

正常 ssh 遠端登入服務的連接埠(port)號碼是 22,但有些人為了保護伺服器避免受到太多的網路攻擊,會將 ssh 的連接埠改成其他的號碼,例如 12345,不過這樣的話在使用 rsync 進行遠端備份資料時,就也要跟著指定連接埠號碼。

假設 192.168.1.12 這台伺服器的 ssh 服務連接埠號碼為 12345,以下是透過 rsync 將資料備份資料的範例:

rsync -avzh -e 'ssh -p 12345' /mypath/myfile.gz pi@192.168.1.12:/mybackup/

這裡我們多加入一個 -e 參數,其用途是指定遠端登入所要使用的指令,預設的指令就是 ssh,而這裡我們將指令變更為 ssh -p 12345,也就是使用 12345 這個連接埠登入 ssh 的意思(請參考 ssh 指令的 -p 參數用法)。

 

備份特定檔案

若要讓 rsync 在備份檔案時,排除所有 *.txt 的文字檔檔案,可以使用 --exclude 參數:

rsync -avh --exclude '*.txt' myfolder/ backup/

我們可以使用多個 --exclude 來排除多種檔案,例如:

rsync -avh --exclude '*.txt' --exclude '*.py' myfolder/ backup/

如果只想要備份某些特定的檔案,可以將 --exclude 與 --include 配合使用,例如只備份所有 *.c 的 C 語言原始碼:

rsync -avh --include '*.c' --include '*/' --exclude '*' myfolder/ backup/

限定備份檔案大小

rsync 也可以依照檔案的大小來選擇備份的檔案,

--min-size 可以指定備份檔案的大小下限,例如只備份 1MB 以上的檔案:

rsync -avh --min-size=1M myfolder/ backup/

而 --max-size 可以指定備份檔案的大小上限,例如只備份 4KB 以下的檔案:

rsync -avh --max-size=4K myfolder/ backup/

--min-size 與 --max-size 也可以同時使用,例如只備份 1KB 到 2MB 之間的檔案:

rsync -avh --min-size=1K --max-size=2M myfolder/ backup/

 

ssh 免密碼登入
用本機pi帳號,登入遠端pi帳號
client端pi身分 生成公鑰
ssh-keygen -t rsa -P '' (注:最後是二個單引號,表示不設定密碼)
然後分發公鑰到目標機器
ssh-copy-id -i ~/.ssh/id_rsa.pub 使用者名稱@對方機器IP (注意不要忘記了引數-i)
如果對方ssh使用不同的port 則必需加入ssh-copy-id -i ~/.ssh/id_rsa.pub -p 8080 使用者名稱@對方機器IP
到此本機pi就可以免密碼登入遠端pi帳號了。ssh pi@遠端機器IP

但因讀取權限的問題,rsync是用root的身分建立crontab
所以還得將/home/pi/.ssh 的id_rsa 及 id_rsa.pub複製到/root/.ssh
所以client還是得用root取得金錀才行。也就是用本機root帳號,登入遠端pi帳號

 

發表於 Linux系統, 軟體使用 | 發表迴響

[linux]列出目錄所佔空間

參考網址:

du -sh *

 

發表於 程式設計 | 發表迴響

[sublime]sql function模式

參考網址: Create a Regex Macro in Sublime

sport.sql.php 誀個檔案中放著sql建立資料表的語法,因為有許多資料表,要找到想要的資料表常常得翻來翻去,著實麻煩。
想說如果有個類似UltraEdit的function列表就方便找尋了,於是試著做做看。

#function aa_game_date {
#
# 資料表格式: `game_date`
#

DROP TABLE IF EXISTS game_date;
CREATE TABLE game_date (
  game_date_id tinyint(4) NOT NULL auto_increment,
  #主索引鍵
  
  game_date_str char(4) NOT NULL default '0',
  #比賽日期
  
  PRIMARY KEY  (game_date_id)
)ENGINE=MyISAM DEFAULT CHARSET=utf8mb4  ;

#
# 列出以下資料庫的數據: `game_date`
#

INSERT INTO game_date VALUES (1, '0105');
INSERT INTO game_date VALUES (2, '0106');
INSERT INTO game_date VALUES (3, '0107');
INSERT INTO game_date VALUES (4, '0108');
#INSERT INTO game_date VALUES (5, '0205');
#} 


一開始糸嘗試用macro來做,發現macro無法記錄find 及 replace。
首先安裝symlist這個外掛,再來安裝regReplace外掛

JSON file with Find and Replace pairs

Go to the top menu Preferences/Package Settings/RegReplace/Rules-User.

{
    "format": "3.0",
    "replacements": {
        // function 變成function模式
        "func_start": {
            "find": "^#function",
            "replace": "function",
            "greedy": true
        },
        "func_end": {
            "find": "^#}",
            "replace": "}",
            "greedy": true
        },
        "func_top": {
            "find": "^#####top",
            "replace": "<?php",
            "greedy": true
        },
        "func_bottom": {
            "find": "^#####bottom",
            "replace": "?>",
            "greedy": true
        },
        // unfunction 變成註解模式
        "unfunc_start": {
            "find": "^function",
            "replace": "#function",
            "greedy": true
        },
        "unfunc_end": {
            "find": "^}",
            "replace": "#}",
            "greedy": true
        },
        "unfunc_top": {
            "find": "^<\\?php",
            "replace": "#####top",
            "greedy": true
        },
        "unfunc_bottom": {
            "find": "^\\?>",
            "replace": "#####bottom",
            "greedy": true
        }
    }
}
問號得加兩條\

JSON file with the Macro command

Go to the top menu Preferences/Package Settings/RegReplace/Rules-User.

[
  {
 	"caption": "RegReplace: function",
    "command": "reg_replace",
    "args": {"replacements": ["func_start","func_end","func_top","func_bottom"]}
  },
  {
 	"caption": "RegReplace: unfunction",
    "command": "reg_replace",
    "args": {"replacements": ["unfunc_start","unfunc_end","unfunc_top","unfunc_bottom"]}
  }
]

建立快捷鍵

Preferences/Key Buiding/user

[
	{
        "keys": ["ctrl+alt+f"],
        "command": "reg_replace",
        "args": {"replacements": ["func_start","func_end","func_top","func_bottom"]}
    },

	{
        "keys": ["ctrl+alt+u"],
        "command": "reg_replace",
        "args": {"replacements": ["unfunc_start","unfunc_end","unfunc_top","unfunc_bottom"]}
    }

]

 

原來不用這麼麻煩,outline外掛原本就內建sql模式,把語言改成sql,它就會自動抓'CREATE TABLE' 當大綱。
https://github.com/warmdev/SublimeOutline/issues/22
用ctrl+shift+p叫出Command Palette
輸入outline可以找到
Outline :Toggle Sort  切換list排序方式
Browse Mode:Outline(Left)
Browse Mode:Outline(Right)  list表放在右邊

發表於 程式設計, 軟體使用 | 發表迴響