linux回滾配置命令 linux回滾日志命令

linux環(huán)境下python怎樣操作mysql數(shù)據(jù)庫

linux環(huán)境下python怎樣操作mysql數(shù)據(jù)庫呢?方法如下:

創(chuàng)新互聯(lián)提供成都網(wǎng)站建設(shè)、做網(wǎng)站、網(wǎng)頁設(shè)計(jì),成都品牌網(wǎng)站建設(shè)一元廣告等致力于企業(yè)網(wǎng)站建設(shè)與公司網(wǎng)站制作,十多年的網(wǎng)站開發(fā)和建站經(jīng)驗(yàn),助力企業(yè)信息化建設(shè),成功案例突破上千,是您實(shí)現(xiàn)網(wǎng)站建設(shè)的好選擇.

首先在Linux環(huán)境下安裝mysql-python

1、下載mysql-python

打開終端:

cd /usr/local

sudo wget?

官網(wǎng)地址:

2、解壓

sudo tar -zxvf MySQL-python-1.2.2.tar.gz

cd MySQL-python-1.2.2

3、在安裝前需進(jìn)行配置

a、修改setup_posix.py中的mysql_config.path為你mysql安裝目錄的mysql_config路徑

b、修改site.cfg中的threadsafe = False,去掉mysql_config前的注釋,并改為mysql_config = /usr/local/mysql/bin/mysql_config

c、執(zhí)行命令:

export LD_LIBRARY_PATH=/usr/local/mysql/lib/mysql

sudo ln -s /usr/local/mysql/lib/mysql/libmysqlclient.so /usr/lib/libmysqlclient.so.14

sudo ldconfig (這個(gè)很重要,否則后面會(huì)報(bào)錯(cuò)ImportError: libmysqlclient.so.14: cannot open shared object file)

4、編譯安裝

1)python setup.py build

若未成功的話,需手動(dòng)安裝setuptools:

sudo apt-get install python-setuptools

2)sudo python setup.py install

5、測(cè)試

python

import MySQLdb

沒有錯(cuò)誤,則表示安裝成功了。

使用python操作MySQL

使用python連接MySQL,創(chuàng)建數(shù)據(jù)庫,創(chuàng)建表格,插入/查詢數(shù)據(jù)。python_mysql.py代碼如下:

效果如圖:

若出現(xiàn)類似于此的警告:

/usr/local/lib/python2.6/dist-packages/MySQL_python-1.2.2-py2.6-linux-i686.egg/MySQLdb/__init__.py:34: DeprecationWarning: the sets module is deprecated from sets import ImmutableSet

解決辦法如下:

找到上面路徑MySQLdb下的__init__.py文件

1) 在文件中 "__init__.py"中, 注釋掉:

from sets import ImmutableSet

class DBAPISet(ImmutableSet):

新增:

class DBAPISet(frozenset):

2) 在文件"converters.py"中,注釋掉 from sets import BaseSet, Set 這一句話。

3) 在文件"converters.py"中, 修改 其中的"Set" 成為 "set" ( 只有兩個(gè)地方需要修改,即大寫改小寫)

大概 line 45: return Set([ i for i in s.split(',') if i ]) 改為 return set([ i for i in s.split(',') if i ])

大概 line 129: Set: Set2Str, 改為 set: Set2Str,

1.引入MySQLdb庫

import MySQLdb

2.和數(shù)據(jù)庫建立連接

conn=MySQLdb.connect(host="localhost",user="root",passwd="sa",db="mytable",charset="utf8")

提供的connect方法用來和數(shù)據(jù)庫建立連接,接收數(shù)個(gè)參數(shù),返回連接對(duì)象.

比較常用的參數(shù)包括

host:數(shù)據(jù)庫主機(jī)名.默認(rèn)是用本地主機(jī).

user:數(shù)據(jù)庫登陸名.默認(rèn)是當(dāng)前用戶.

passwd:數(shù)據(jù)庫登陸的秘密.默認(rèn)為空.

db:要使用的數(shù)據(jù)庫名.沒有默認(rèn)值.

port:MySQL服務(wù)使用的TCP端口.默認(rèn)是3306.

charset:數(shù)據(jù)庫編碼.

然后,這個(gè)連接對(duì)象也提供了對(duì)事務(wù)操作的支持,標(biāo)準(zhǔn)的方法

commit() 提交

rollback() 回滾

3.執(zhí)行sql語句和接收返回值

cursor=conn.cursor()

n=cursor.execute(sql,param)

首先,我們用使用連接對(duì)象獲得一個(gè)cursor對(duì)象,接下來,我們會(huì)使用cursor提供的方法來進(jìn)行工作.這些方法包括兩大類:1.執(zhí)行命令,2.接收返回值

cursor用來執(zhí)行命令的方法:

callproc(self, procname, args):用來執(zhí)行存儲(chǔ)過程,接收的參數(shù)為存儲(chǔ)過程名和參數(shù)列表,返回值為受影響的行數(shù)

execute(self, query, args):執(zhí)行單條sql語句,接收的參數(shù)為sql語句本身和使用的參數(shù)列表,返回值為受影響的行數(shù)

executemany(self, query, args):執(zhí)行單條sql語句,但是重復(fù)執(zhí)行參數(shù)列表里的參數(shù),返回值為受影響的行數(shù)

nextset(self):移動(dòng)到下一個(gè)結(jié)果集

cursor用來接收返回值的方法:

fetchall(self):接收全部的返回結(jié)果行.

fetchmany(self, size=None):接收size條返回結(jié)果行.如果size的值大于返回的結(jié)果行的數(shù)量,則會(huì)返回cursor.arraysize條數(shù)據(jù).

fetchone(self):返回一條結(jié)果行.

scroll(self, value, mode='relative'):移動(dòng)指針到某一行.如果mode='relative',則表示從當(dāng)前所在行移動(dòng)value條,如果mode='absolute',則表示從結(jié)果集的第一行移動(dòng)value條.

下面的代碼是一個(gè)完整的例子.

#使用sql語句,這里要接收的參數(shù)都用%s占位符.要注意的是,無論你要插入的數(shù)據(jù)是什么類型,占位符永遠(yuǎn)都要用%s

sql="insert into cdinfo values(%s,%s,%s,%s,%s)"

#param應(yīng)該為tuple或者list

param=(title,singer,imgurl,url,alpha)

#執(zhí)行,如果成功,n的值為1

n=cursor.execute(sql,param)

#再來執(zhí)行一個(gè)查詢的操作

cursor.execute("select * from cdinfo")

#我們使用了fetchall這個(gè)方法.這樣,cds里保存的將會(huì)是查詢返回的全部結(jié)果.每條結(jié)果都是一個(gè)tuple類型的數(shù)據(jù),這些tuple組成了一個(gè)tuple

cds=cursor.fetchall()

#因?yàn)槭莟uple,所以可以這樣使用結(jié)果集

print cds[0][3]

#或者直接顯示出來,看看結(jié)果集的真實(shí)樣子

print cds

#如果需要批量的插入數(shù)據(jù),就這樣做

sql="insert into cdinfo values(0,%s,%s,%s,%s,%s)"

#每個(gè)值的集合為一個(gè)tuple,整個(gè)參數(shù)集組成一個(gè)tuple,或者list

param=((title,singer,imgurl,url,alpha),(title2,singer2,imgurl2,url2,alpha2))

#使用executemany方法來批量的插入數(shù)據(jù).這真是一個(gè)很酷的方法!

n=cursor.executemany(sql,param)

4.關(guān)閉數(shù)據(jù)庫連接

需要分別的關(guān)閉指針對(duì)象和連接對(duì)象.他們有名字相同的方法

cursor.close()

conn.close()

以上方法就可以了。

另外,附MySQLdb的相關(guān)資料

更多關(guān)于MySQLdb的信息可以查這里:

兩臺(tái)linux服務(wù)器同步問題?

Linux自帶了ntp服務(wù) -- /etc/init.d/ntpd,這個(gè)服務(wù)不僅可以設(shè)置讓本機(jī)和某臺(tái)/某些機(jī)器做時(shí)間同步,他本身還可以扮演一個(gè)time server的角色,讓其他機(jī)器和他同步時(shí)間。

配置文件就是/etc/ntp.conf。

為了測(cè)試,設(shè)置讓node2 -- 192.168.1.102和node1 -- 192.168.1.101做時(shí)間同步。第一步,node1做time server,node1本身不和其他機(jī)器時(shí)間同步,就是取本地時(shí)間。所以,先把node1機(jī)器的時(shí)間調(diào)準(zhǔn)了:

[root@node1 ~]date -s 08/03/2011

[root@node1 ~]date -s 11:12:00

[root@node1 ~]clock -w[root@node1 ~]hwclock --systohc

后兩個(gè)命令是把設(shè)置的時(shí)間寫到硬件時(shí)間中去(也就是CMOS里面的時(shí)間)。

第二步,然后將node1配置成一個(gè)time server,修改/etc/ntp.conf,[root@node1 ~]vi /etc/ntp.conf其他的配置不怎么需要改,只需要關(guān)注restrict的配置:

1. 注釋掉原來的restrict default ignore這一行,這一行本身是不響應(yīng)任何的ntp更新請(qǐng)求,其實(shí)也就是禁用了本機(jī)的ntp server的功能,所以需要注釋掉。

2. 加入:restrict 192.168.1.0 mask 255.255.255.0 -- 讓192.168.1.0/24網(wǎng)段上的機(jī)器能和本機(jī)做時(shí)間同步

3. 這樣就可以了,記得下面的:

server 127.127.1.0 # local clockfudge 127.127.1.0 stratum 10

這兩行需要,這是讓本機(jī)的ntpd和本地硬件時(shí)間同步。

當(dāng)然,我們也可以添加server xxx.xxx.xxx.xxx,讓他和其他的time server時(shí)間同步。

4. /etc/init.d/ntpd restart

5. chkconfig ntpd on

6. 修改iptables配置,將tcp和udp 123端口開放,這是ntp需要的端口,在/etc/services中可以查到這個(gè)端口。

第三步,這樣node1就成為一臺(tái)time server了,現(xiàn)在我們配置node2這臺(tái)機(jī)器,也是修改/etc/ntp.conf ,[root@node2 ~]vi /etc/ntp.conf

1. restrict default ignore這行保留為注釋狀態(tài),因?yàn)閟ales不需要做time server

2. 注釋掉server 127.127.1.0, fudge 127.127.1.0 stratum 10這兩行,因?yàn)檫@臺(tái)機(jī)器不需要和本地硬件時(shí)鐘同步了。

3. 加入server 192.168.1.101這行,和node1機(jī)器同步。

這樣就OK了??纯磿r(shí)間,已經(jīng)和node1同步了。往后默認(rèn)配置好像是5分鐘和time server同步一次。ntpdate命令是顯式的和某臺(tái)機(jī)器做時(shí)間同步,以前將ntpdate放到crontab中定期同步也是可以的,但是既然ntpd本身就可以做這個(gè)時(shí)間

第四步,將ntpdate放到crontab中定期步也是可以的[root@node2 ~]#vi ntpupdate.sh/usr/sbin/ntpdate 192.168.1.101[root@node2 ~]#chmod 755 ntpupdate.sh[root@node2 ~]#crontab -e*/1 * * * * /root/ntpupdate.sh[root@node2 ~]#/etc/init.d/crond restart

Linux如何查看死機(jī)原因

查看linux系統(tǒng)日志,步驟如下:

1、首先,連接相應(yīng)linux主機(jī),進(jìn)入到linux命令行狀態(tài)下,等待輸入shell指令。

2、在linux命令行下輸入shell指令:cat /var/log/messages。

3、鍵盤按“回車鍵”運(yùn)行shell指令,這時(shí)就看到系統(tǒng)日志被打印了出來。

擴(kuò)展資料:

Linux死機(jī)的問題

1.先檢查硬件,查看服務(wù)器狀態(tài)燈是否有報(bào)警。確保硬件沒有問題。

2.使用服務(wù)器自帶的監(jiān)測(cè)工具進(jìn)行測(cè)試。

3.根據(jù)你的情況,我覺得可以重新安裝一下登錄管理器,或者整個(gè)GUI。

4.檢查一下服務(wù)器性能負(fù)載情況,有時(shí)候機(jī)器不用時(shí)發(fā)現(xiàn)不了情況,很多時(shí)候都是高負(fù)載時(shí)才出現(xiàn)問題。

5.檢查系統(tǒng)日志是否有異常。

6.檢查是否有可疑的進(jìn)程。

7.檢查系統(tǒng)相關(guān)的配置文件。

linux 的logrotate日志回滾可以按大小和日期為檢測(cè)標(biāo)準(zhǔn)進(jìn)行回滾,現(xiàn)在我想要記錄一個(gè)系統(tǒng)啟動(dòng)過程的日志

關(guān)機(jī)的時(shí)候會(huì)kill服務(wù)

你在你的/etc/rc.d/init.d/目錄下建立一個(gè)關(guān)機(jī)執(zhí)行腳本

任務(wù)內(nèi)容就是滾動(dòng)系統(tǒng)啟動(dòng)過程的日志

即可下次開機(jī)便可 記錄到新滾動(dòng)的日志里了,,

linux如何通過快照數(shù)據(jù)盤拷貝到系統(tǒng)盤?

Btrfs 又被稱為 Butter FS、Better FS 或 B-Tree FS,是由 Oracle 于 2007 年開始設(shè)計(jì)、開發(fā)的一個(gè)現(xiàn)代文件系統(tǒng),它于 2009 年開始便被合并入 Linux 2.6.29 內(nèi)核。Btrfs 基于 GPL 許可,由于不是十分穩(wěn)定,雖然許多 Linux 發(fā)行版都對(duì)其進(jìn)行了集成,但并不作為默認(rèn)文件系統(tǒng)進(jìn)行使用。Btrfs 之所以被廣泛集成,因其支持磁盤快照、支持遞歸快照、對(duì) RAID 的支持,支持子卷(Subvolumes),以及允許在線調(diào)整文件系統(tǒng)大小等優(yōu)秀特性。雖然目前大多 Linux 發(fā)行版都在用 Ext4 作為主要文件系統(tǒng),但將來隨時(shí)有可能被 Btrfs 所取代。 Btrfs 主要被設(shè)計(jì)用于解決當(dāng)前 Linux 文件系統(tǒng)各種「弱點(diǎn)」的 COW(copy-on-write)文件系統(tǒng), 有望提供更好的可擴(kuò)展性和可靠性,其主要開發(fā)焦點(diǎn)都放在了容錯(cuò)、修復(fù)和易于管理等方面。 接下來我將主要向大家介紹如何使用 apt-btrfs-snapshot 將 Linux 中的 btrfs 文件系統(tǒng)快照回滾到之前的系統(tǒng)狀態(tài)。使用 apt-btrfs-snapshot 創(chuàng)建和管理文件系統(tǒng)快照就像其它 APT 操作一樣簡(jiǎn)單,使用它我們可以輕松地恢復(fù) btrfs 文件系統(tǒng)的狀態(tài)。 先決條件 為了創(chuàng)建并使用 btrfs 恢復(fù)你的 Linux 文件系統(tǒng),當(dāng)然需要使用的是 btrfs 文件系統(tǒng),還需要沒有使用 Ext 文件系統(tǒng)的單獨(dú) /boot分區(qū),不然就沒法玩了。 安裝Btrfs包 條件滿足之后,就使用如下命令安裝 apt-btrfs-snapshot 包: apt-get install apt-btrfs-snapshot 安裝完成之后使用如下 apt-btrfs-snapshot 命令檢查是否支持 btrfs 快照的創(chuàng)建: apt-btrfs-snapshot supported 如果滿足 btrfs 文件系統(tǒng)的先決條件,會(huì)輸出 Supported,否則會(huì)輸出: Sorry, your system lacks support for the snapshot feature 你可以使用如下命令檢查 Ubuntu 上的 btrfs 子卷的默認(rèn)布局: btrfs subvolume list 使用ATP操作創(chuàng)建快照 為了測(cè)試回滾操作,我們先在當(dāng)前系統(tǒng)中執(zhí)行一些 apt 操作,例如 apt-get。 apt-get update apt-get upgrade 按 Y 繼續(xù)執(zhí)行系統(tǒng)升級(jí),你會(huì)看到 apt-btrfs-snapshot 已經(jīng)自動(dòng)為升級(jí)之前的系統(tǒng)狀態(tài)創(chuàng)建了快照。 你也可以使用如下命令查看當(dāng)前系統(tǒng)中的快照列表: btrfs subvolume list / apt-btrfs-snapshot list 還原Btrfs快照 例如在系統(tǒng)升級(jí)過程中遇到了問題,我們需要恢復(fù)升級(jí)之前的系統(tǒng)狀態(tài),可以將 btrfs 文件系統(tǒng) mount 到一個(gè)單獨(dú)的位置,例如/mnt 下進(jìn)行操作。 mount /dev/sda1 /mnt 查看 /mnt 目錄會(huì)輸出子卷: ls -l /mnt/ 其中的 @apt-snapshot-2016-05-24_02:18:31 是之前 apt 操作時(shí)的 root 文件系統(tǒng)快照。將當(dāng)前子卷重命名為 @ 開頭,再將 @apt-snapshot-2016-05-24_02:18:31 重命名為為當(dāng)前子卷后重啟系統(tǒng),即對(duì)快照進(jìn)行了恢復(fù)操作。 刪除Btrfs快照 當(dāng)快照恢復(fù)后,或需要騰出部分磁盤空間時(shí),可以使用如下命令來刪除快照: mount /dev/sda1 /mnt/ btrfs subvolume delete /mnt/@_latest-root/ umount /mnt 說得直白一點(diǎn),Btrfs 快照實(shí)際上就是與其它子卷進(jìn)行數(shù)據(jù)共享的子卷,其使用 Btrfs 的 copy-on-write 能力共享數(shù)據(jù)和對(duì)快照進(jìn)行修改,原始子卷并不可見。一旦快照創(chuàng)建完成,它就被視為原始文件系統(tǒng)的可替換版本。

網(wǎng)站名稱:linux回滾配置命令 linux回滾日志命令
分享URL:http://muchs.cn/article16/doocsgg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供Google、定制開發(fā)、用戶體驗(yàn)、企業(yè)建站網(wǎng)站改版ChatGPT

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

營銷型網(wǎng)站建設(shè)