Shell-Script
在 shell 腳本中使用密碼
例如,我想創建一個與 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