Linux運(yùn)行sql腳本的具體操作步驟如下:
10年積累的成都網(wǎng)站設(shè)計、成都網(wǎng)站制作、外貿(mào)網(wǎng)站建設(shè)經(jīng)驗,可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識你,你也不認(rèn)識我。但先網(wǎng)站設(shè)計后付款的網(wǎng)站建設(shè)流程,更有魯?shù)槊赓M(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
1、使用shell工具登陸到安裝postgresql的服務(wù)器,切換到postgres用戶,postgresql默認(rèn)的操作用戶,命令是:su - postgres,查看當(dāng)前路徑是/var/lib/psql,創(chuàng)建一個test.sql腳本文件,命令是:vim test.sql。
2、sql腳本內(nèi)容是:create table test (id int not null primary key,name text);insert into test valus(1, 't1');
3、執(zhí)行test.sql腳本,命令是:psql -f test.sql
這里是因為postgresql安裝本機(jī)上,在第一步中我們切換到了postgres用戶,因此這里默認(rèn)就是postgres用戶來操作,不用帶上用戶名和密碼。執(zhí)行結(jié)果如下,可以看到有兩個提示:
create table
insert 0 1
執(zhí)行完成后,我們登入數(shù)據(jù)庫,命令是:psql
4、進(jìn)入psql交互式命令行后,我們執(zhí)行兩個查看命令:\d
可以看到表test確實已經(jīng)創(chuàng)建成功,然后執(zhí)行命令:\d test
可以看到表中字段是id和name,和我們創(chuàng)建語句中內(nèi)容一樣,說明第一條語句執(zhí)行成功。
5、查看表中數(shù)據(jù),命令是:select * from test;
顯示出來的值是1,t1,說明第二條執(zhí)行語句也執(zhí)行成功,說明test.sql腳本執(zhí)行成功。
6、默認(rèn)是postgres用戶,本機(jī)操作是,不需要用戶和密碼,現(xiàn)在我們來試試操作遠(yuǎn)程linux服務(wù)器上的postgresql,也就是說執(zhí)行本地的腳本文件,在遠(yuǎn)程服務(wù)器上創(chuàng)建表。如下面圖中所示,命令是:psql -U test1 -h 192.168.1.194 -f test.sql,輸入對應(yīng)用戶的密碼。
7、登陸到這個遠(yuǎn)程服務(wù)器上,命令是:psql -U test -h 192.168.194
執(zhí)行查看命令:\d,\d test
最后查詢數(shù)據(jù)庫:select * from test;結(jié)果和上面都一致。
原文及更新:
直接在/etc/rc.local(/etc/rc.d/rc.local)文件中添加即可
上面這腳本實際上在使用時出現(xiàn)了問題, /home/neucrack/software/ss/start_ss_local.sh 這個命令始終沒有被執(zhí)行,原因是 /home/neucrack/software/ss/start_kcptun_client.sh 中的命令阻塞了進(jìn)程,導(dǎo)致后面一句始終沒有執(zhí)行,可以將他們分別放到后臺執(zhí)行就行了,如何在后臺執(zhí)行可以看文章最后一部分
也可以自己手動在rc*.d中建立軟連接
桌面系統(tǒng)搜索 啟動 ,打開啟動管理器 添加刪除即可
一般有以下幾種方法:
1)在輸入命令的最前面加上 nohup 命令
如 nohup your_command 這樣命令在你退出后仍然會在后臺執(zhí)行
2) setsid 命令
setsid your_command 該命令的結(jié)果是使你所運(yùn)行的命令的父進(jìn)程為init,所以只有關(guān)機(jī)該進(jìn)程才會停止
3) (your_command )
就是用括號將你的命令括起來,這樣做也是使命令的父進(jìn)程為init
4) disown
當(dāng)你在命令行下輸入 your_command 后命令就在后臺執(zhí)行了,然后執(zhí)行jobs命令,該命令會列出當(dāng)前正在后臺執(zhí)行的命令。例如輸入命令“top”
然后執(zhí)行"jobs"
輸出結(jié)果是
[1] + Suspended (tty output) top
注意行開頭方括號內(nèi)的數(shù)字,該數(shù)字叫做jobspec,是給當(dāng)前后臺運(yùn)行的job的編號。這是你只要在命令行下輸入"disown -h 1" 后臺運(yùn)行的top命令就不會受到hangup信號的影響了。
5)使用 screen 命令
在命令行下輸入screen命令就開啟了一個screen進(jìn)程,它就好像是一個全新的命令運(yùn)行環(huán)境,在該環(huán)境中你可以像在正常的terminal下那樣執(zhí)行
命令,但是這個screen是不受其父進(jìn)程的hangup信號的影響的,既然screen不受其父進(jìn)程影響,當(dāng)你意外掉線或者退出系統(tǒng)時,在screen
中仍在執(zhí)行的命令仍然會繼續(xù)執(zhí)行。關(guān)于screen命令的使用方法你可以再去查閱相關(guān)資料。
#!/bin/bash
#echo hi
DEBUG=0
case $1 in
想要啟動的程序名)
DEBUG=1 ;;
esac
if [[ ?$DEBUG -eq 1 ?]]; then
# 啟動命令
./elasitcsearch -d
echo "程序已啟動"
exit 10
else
echo 啟動命令只能使用.想要啟動的程序名)
exit 7
fi
不過我怎么覺得好奇怪呢。我沒寫過這種東西,我總感覺那里有問題。case 可以自己添加某些進(jìn)程進(jìn)去。這樣子你不需要在程序目錄存放只需要在你的家目錄存放就行。沒需要添加一個程序 就在case下添加進(jìn)去就行。代碼都差不多
ash
shell
腳本的方法有多種,現(xiàn)在作個小結(jié)。假設(shè)我們編寫好的shell腳本的文件名為hello.sh,文件位置在/data/shell目錄中并已有執(zhí)行權(quán)限。
方法一:切換到shell腳本所在的目錄(此時,稱為工作目錄)執(zhí)行shell腳本:
cd
/data/shell
./hello.sh
./的意思是說在當(dāng)前的工作目錄下執(zhí)行hello.sh。如果不加上./,bash可能會響應(yīng)找到不到hello.sh的錯誤信息。因為目前的工作目錄(/data/shell)可能不在執(zhí)行程序默認(rèn)的搜索路徑之列,也就是說,不在環(huán)境變量PASH的內(nèi)容之中。查看PATH的內(nèi)容可用
echo
$PASH
命令?,F(xiàn)在的/data/shell就不在環(huán)境變量PASH中的,所以必須加上./才可執(zhí)行。
方法二:以絕對路徑的方式去執(zhí)行bash
shell腳本:
/data/shell/hello.sh
方法三:直接使用bash
或sh
來執(zhí)行bash
shell腳本:
cd
/data/shell
bash
hello.sh
或
cd
/data/shell
sh
hello.sh
注意,若是以方法三的方式來執(zhí)行,那么,可以不必事先設(shè)定shell的執(zhí)行權(quán)限,甚至都不用寫shell文件中的第一行(指定bash路徑)。因為方法三是將hello.sh作為參數(shù)傳給sh(bash)命令來執(zhí)行的。這時不是hello.sh自己來執(zhí)行,而是被人家調(diào)用執(zhí)行,所以不要執(zhí)行權(quán)限。那么不用指定bash路徑自然也好理解了啊,呵呵……。
方法四:在當(dāng)前的shell環(huán)境中執(zhí)行bash
shell腳本:
cd
/data/shell
.
hello.sh
或
cd
/data/shell
source
hello.sh
前三種方法執(zhí)行shell腳本時都是在當(dāng)前shell(稱為父shell)開啟一個子shell環(huán)境,此shell腳本就在這個子shell環(huán)境中執(zhí)行。shell腳本執(zhí)行完后子shell環(huán)境隨即關(guān)閉,然后又回到父shell中。而方法四則是在當(dāng)前shell中執(zhí)行的。