Shell-Script

在 shell 腳本中使用密碼

  • February 14, 2018

例如,我想創建一個與 mysql 互動的 cron 腳本

#!/bin/bash

mysql -uroot -p
echo root
echo "CREATE DATABASE example"

但它不起作用,它只是提示:

Enter password:

當我退出mysql時它顯示

root
"CREATE DATABASE example"

任何的想法?

放一些類似的東西:

[client]
user=root
password="my-very-secret-password"

在一個文件中,其權限確保有權閱讀它的人之外的任何人都不能閱讀它。

並執行:

#! /bin/sh -
mysql --defaults-extra-file=/path/to/that/file --batch << "EOF"
CREATE DATABASE example
EOF

有關更多資訊,請參閱MySQL 自己的指南本身

您可以將密碼放在腳本中並限制對腳本本身的讀取訪問權限,但您還需要確保密碼不會作為參數傳遞給任何命令,因為這樣會使輸出中的任何人都可以看到它ps.

您可以執行以下操作:

#! /bin/sh -
mysql --defaults-extra-file=/dev/fd/3 --batch 3<< "END_OF_AUTH" << "END_OF_SQL"
[client]
user=root
password="my-very-secret-password"
END_OF_AUTH
CREATE DATABASE example
END_OF_SQL

引用自:https://unix.stackexchange.com/questions/396277