重設MySQL root密碼

好久沒碰過更換root密碼的這爛事了,今天重溫了一遍。。。

一般上,伺服器一旦運行了,最好的情況是永遠無需碰它的設置。但有時候真的無可避免。這回,在使用了往常用的修復手法后,卻被系統直接KO,被系統提醒我 “請仔細詳讀用戶手冊中,Security這欄目。。。”

找了來看,一頭霧水。最後去問神了,結果還是一直被KO。直到最後在Stack Overflow的這篇文章内,才找到真正的答案。。。

是的,系統升級了,往常用的mysqld_safe已經不存在了。現在更方便的衹需設置好伺服器的運作環境常量,重啓即可。長話短說,流程轉載在下方:

1. Stop mysql:

> systemctl stop mysqld

2. Set the mySQL environment option

> systemctl set-environment MYSQLD_OPTS=”–skip-grant-tables”

3. Start mysql usig the options you just set

> systemctl start mysqld

4. Login as root

> mysql -u root

5. Update the root user password with these mysql commands:

mysql> UPDATE mysql.user SET authentication_string = PASSWORD(‘MyNewPassword’) -> WHERE User = ‘root’ AND Host = ‘localhost’;

mysql> FLUSH PRIVILEGES;

mysql> quit

(for 5.7.6 and later, you should use mysql> ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘MyNewPass’;)

6. Stop mysql

> systemctl stop mysqld

7. Unset the mySQL envitroment option so it starts normally next time

> systemctl unset-environment MYSQLD_OPTS

8. Start mysql normally:

> systemctl start mysqld

9. Try to login using your new password:

> mysql -u root -p

[Linux] logrotate — 日志文件的自動分頁備份工具

在Linux上,最重要的文件之一就是其日志文件,我想Linuxer都應該會同意這個説法。原因衹有一個:系統出現任何問題,都可以在這找到其出事原因!說實在,這比微軟的系統日志來得好多了。。。(至少看得懂啊!!!😅)

而管理好日志,就是一項非常沉悶,但又重要的工作。logrotate 就是用來解決這一切煩惱的好工具。

Continue reading “[Linux] logrotate — 日志文件的自動分頁備份工具”

Exim — 如何解讀它的記錄檔 (log file)

閱讀記錄檔,是每個伺服管理員的必修功課。一旦有問題,就需要埋頭在這些記錄中,尋找問題的源頭,再來才能夠找到解決的真正方法。

為了節省儲存空間,一般的記錄檔都會盡量用符號來取代文字。

下面是用於Exim的符號:

用戶插入圖片

一個例子:
用戶插入圖片

解讀:
列一:郵件處理的日期時間
列二:電郵編號
列三:就是上面說的符號啦~(紅色圈起的部份)
列四:郵件處理詳情

升級CentOS手記

目前大部份比較經濟的網服都是以CentOS為主,除了免費之外,最重要的還是這個Linux Distro是基於 Redhat SE(雖然它一直都在否認),所以其穩定和安全係數還是比較可信的。

目前螞蟻使用的為CentOS 5.5版,為了要追上潮流,試用最新的 Joomla3,所以恨心做了升級的舉動。(Joomla3竟然需要PHP 5.3.1以上才能運作,而在CentOS 5.5最高只能升級到 5.1.x,真的命苦啊~~~)

廢話少說,工作還是得做。

升級時其實非常簡單,只需一個指令即可。

sudo yum update

輸入root密碼後,等它跑一大堆檢查,最後如果沒有狀況,它就會問你是否真的要升級,並提示需要下載的文件總量。按下 “ Y ” 敲一下 Enter 就可以讓它繼續完成其餘工作。
用戶插入圖片

如果在中間出現問題的話,它也會提供解決方式讓你選擇。我在升級時就面對幾個程式的Dependency出現問題,最後選用了其提供指令,跳過出錯的地方。

【学习记录】预先定制工作 — atd ,Crontab

在Linux系统中,其中两个最长用于预先订制工作(Schedule Task)的指令,就是Crontab和atd。前者用于订制重复性质的工作内容,而后者则适用于订制只执行一次的工作性质。

例子:

  1. 要求系统每逢周三午夜三点,把资料库做一次完整备份。 — 用Crontab。
  2. 要求系统在这周末早上六点,自动把一个档案以FTP上传到某客户的FTP伺服器上。 — 用atd。
————————–

Crontab
可以把Crontab,看成是一个纯文字档案,用于制定什么时候需要执行什么任务。要进行定制设置时,只需在指令符输入crontab -e就会呼叫出编辑器,让你进行设置工作。预设的设定档中,有一个简单的使用说明,不妨留心详细阅读一下。每当一个Crontab执行过后,它将会自动发送一份电邮给设置人,告诉其执行结果。

其设置是以断行来区分不同的工作行程,以空白键(或Tab)来分隔内容栏目。内容栏目共有六个,从左到右为:

  1. Minute (分钟,0~59)
  2. Hour (时钟,00~23)
  3. Day of the Month (日子,1~28/29/30/31)
  4. Month of the Year (月份,1~12)
  5. Day of the week (周末至周六)
  6. 指令行(将使用sh来执行)

如何解读Crontab的设置:

0,20,40 22-23 * 7 fri-sat /home/mycrontest.sh

可解读其执行时间为:
a.)  0,20,40 = 每至0,20,40分
b.) 22-23 = 从22时至23时
c.) * = 任一日子
d.) 7 = 七月之内
e.) fri-sat = 周五至周六
f.) /home/crontest.sh = 执行指令档《/home/crontest.sh》。

如果要实现上述例子一中的工作,crontab就会这样写:
* 3 * * wed /home/backup_my_db.sh

———————-

atd
atd中,可以使用的指令包括at、atq、atrm等。

at 用于设定工作。
atq 用于查询已被设定的工作列表。
atrm 用于从列表中移除已经设定的工作。

设定工作例子:
1.) at -f action.sh 10pm
–> 于即将到来的晚上10时,执行action.sh这个指令文件。如果设定于10pm之前,则会在当天晚上10时执行任务,否则将会在明晚10时进行。

2.) at -f action.sh 21:00 tomorrow
–> 于明天21时执行指令文件。

3.) at -f action.sh 2:00 Aug 12
–> 于8月12日凌晨2时执行指令文件。

完成设置的例子:
用戶插入圖片

查询工作列表:直接在指令符中敲入atq即可。
用戶插入圖片

查询工作内容:at -c x (x=工作编号)。
不晓得是不是Ubuntu Server的设定问题,它竟然会列出一大堆垃圾之后才轮到at的设置。。。(无言~)

删除工作:atrm x (x = 工作编号)。
用戶插入圖片

好了。暂时就这么多。
有兴趣要了解更多,除了查询谷歌大神之外,还可以问人(在指令符中输入man at 或man crontab)。