Archive for the ‘架站筆記’ Category

Mac上備份Dropbox以外資料夾

好用秘技留著備忘(常常在查terminal語法)

以下介紹摘自:《姆奈》MKnight: Dropbox 在 Mac 上的密技

若你想備份許多舊資料夾,方法之一是將它們全移到 Dropbox 裡。另外一個方法則不必移動資料夾,而是在 Dropbox 裡建立這些資料夾的分身捷徑。但分身建立方式必須是 Unix 式的 symbolic link,直接在 Mac 桌面視窗裡來增加捷徑並無法實際備份。

建立 symbolic link 須在 Terminal 裡輸入指令「ln -s」。指令範例:

螢幕快照 2015-05-06 下午7.22.37

其中 folder1 是本尊,folder2 是欲建立的分身命名。不只資料夾,分身指令對檔案也同樣有效。
快速輸入本尊、分身路徑的方法是直接將資料夾用滑鼠拖入 Terminal 視窗裡。

[注意]

  1. Symbolic link 只能單向同步備份,意指:如果網路或遠端電腦更改了該分身,該分身在本端電腦上就會變回尋常資料夾。所以 Symbolic link 只適用於備份與單向分享。
  2. Symbolic link 的右鍵選單無法出現 Dropbox 功能選項。
  3. 以上問題皆可能在不久的將來被解決,因為官方已同意增加「同步鍊結 Dropbox 外資料夾」的功能。

google buzz與其他sns

最近嚐試了google buzz,初步的感覺是buzz比較像是FB,分享給現實生活中的人看,少了遊戲但多了許多第三方的互動,如reader、照片。好處是不會影響原本使用的服務。

FB和Google Buzz的朋友群大多是已經認識的人,不過,FB有強項在遊戲,但缺點是什麼東西都是在FB上,與原本使用的服務有衝突。而Buzz的好處在於,即使不用social network的朋友也看得到(前提是他用Gmail),另外可以針對不同族群的人作保密也是優點。

plurk和twitter則是反而都是以不認識的網友居多(因為身邊玩這個的朋友太少…),通常是收看網路的訊息,順便無壓力的喃喃自語。

我的twitter大多是作為中介的網站,因為使用的朋友少,但twitter的第三方應用是最多的。

不過,我還蠻喜歡google buzz的定位與其他網站連結,目前暫時將google profile設為個人"官方"頁面,並且將google buzz -> twitter-> facebook。buzz發佈到twitter的方法在這裡,使用feedburner的socialize很方便。

drupal 6 to wordpress 2.7

又把部落格從 drupal 搬回到 wordpress ,因為實在太忙,沒有空玩drupal的強大功能,也沒空維持它。而單純以書寫來說,wordpress是方便多了。不過,搬回來實在很麻煩…這是drupal故意的嗎?呵呵

必須要使用SQL的指令修改資料,所以必需要有phpMyadmin、相關權限與一定程度的語法知識(不必太厲害,會操作即可)。

參考:http://socialcmsbuzz.com/convert-import-a-drupal-6-based-website-to-wordpress-v27-20052009/

step1. 首先,你要先安裝一個新的wordpress系統,SQL資料庫名為「tempdb」(如果不是這個名字,以下指令請自行修改)

step2 然後將 drupal 6 的 SQL database 備份出來,再輸入到 wordpress 的資料庫「tempdb」中。

step3 依照以下語法,一一修改

(1) 輸入前清除表格

TRUNCATE TABLE tempdb.wp_comments;
TRUNCATE TABLE tempdb.wp_links;
TRUNCATE TABLE tempdb.wp_postmeta;
TRUNCATE TABLE tempdb.wp_posts;
TRUNCATE TABLE tempdb.wp_term_relationships;
TRUNCATE TABLE tempdb.wp_term_taxonomy;
TRUNCATE TABLE tempdb.wp_terms;

(2) 匯入分類與標籤

INSERT INTO tempdb.wp_terms (term_id, `name`, slug, term_group)
SELECT
d.tid, d.name, REPLACE(LOWER(d.name), ' ', '-'), 0
FROM tempdb.term_data d
INNER JOIN tempdb.term_hierarchy h
USING(tid)
;

INSERT INTO tempdb.wp_term_taxonomy (term_id, taxonomy, description, parent)
SELECT
d.tid `term_id`,
'category' `taxonomy`,
d.description `description`,
h.parent `parent`
FROM tempdb.term_data d
INNER JOIN tempdb.term_hierarchy h
USING(tid)
;

(3) 匯入文章內容

INSERT INTO
    tempdb.wp_posts (id, post_date, post_content, post_title,
    post_excerpt, post_name, post_modified)
SELECT DISTINCT
    n.nid, FROM_UNIXTIME(created), body, n.title,
    teaser,
    REPLACE(REPLACE(REPLACE(REPLACE(LOWER(n.title),' ', '-'),'.', '-'),',', '-'),'+', '-'),
    FROM_UNIXTIME(changed)
FROM tempdb.node n, tempdb.node_revisions r
WHERE n.vid = r.vid

(4) 連結文章與分類

INSERT INTO tempdb.wp_term_relationships (object_id, term_taxonomy_id)
SELECT nid, tid FROM tempdb.term_node;

Category Count Updating

UPDATE wp_term_taxonomy tt
SET `count` = (
 SELECT COUNT(tr.object_id)
 FROM wp_term_relationships tr
 WHERE tr.term_taxonomy_id = tt.term_taxonomy_id
);

(5) 隱藏未驗證回應

INSERT INTO tempdb.wp_comments (comment_post_ID, comment_date, comment_content, comment_parent, comment_author, comment_author_email, comment_author_url, comment_approved)
SELECT nid, FROM_UNIXTIME(timestamp), comment, thread, name, mail, homepage, status FROM tempdb.comments;

(6) 更新文章回應數

UPDATE `wp_posts` SET `comment_count` = (SELECT COUNT(`comment_post_id`) FROM `wp_comments` WHERE `wp_posts`.`id` = `wp_comments`.`comment_post_id`);

(7) 修正斷行符號

UPDATE tempdb.wp_posts SET post_content = REPLACE(post_content, '', '');

(8) 修正圖檔位置

UPDATE tempdb.wp_posts SET post_content = REPLACE(post_content, '"/sites/default/files/',

step4 完成資料庫修正後,可把 tempdb 中 druapl 的資料表刪除,並把 wordpress 的資料表移到真正的 wordpress 資料庫中。

step5 中文部分顯示若有問題,記得到 wp-config.php 中加入以二行。

define('DB_CHARSET', 'utf8');
define('DB_COLLATE', 'utf8_general_ci');

用wordpress import轉換到drupal

之前的轉換是用wp2drupal這個module,但使用上非常的麻煩,而且有版本的問題。今天靈機一動,直接查詢有沒有用WXR匯入的方式,結果竟然有!!根據Migrate a WordPress site to Drupal這篇文章,可以用WordPress Import這個module完成。

一試之下,真是讓我非常鬱卒,又簡單又快,沒有任何問題。啟用模組後,內容管理會出現「wordpress import」,匯入下載好的WXR檔,決定要匯到哪個作者名下(如果不選,則不會匯入),文章、類別、標籤通通都進來了…

[SQL] 刪除wordpress同一類別文章 (2.3適用)

WordPress令我生氣的地方是大量編輯功能很若,特別是沒辦法刪去某類別中的所有文章,或是移到其他類別中。雖然有Mass Post Manager外掛,但在升級到2.3版後一直運作的不順利。一氣之下決定直接去研究SQL資料格式與語法,本語法僅適用於wordpress 2.3和wordpress mu 1.2相應版本,其他版本須視資料庫情況而定。

小心!!本語法有一定之風險,僅供參考,不建議使用。若不沒有語法基本概念請勿使用,後果自負。

(繼續閱讀…)

MySQL 的 Replace 功能

From: MySQL 的 Replace 功能 – Real-Blog

要對 MySQL 資料庫內的資料替換字串,可以借助 PHP 的 str_replace(),但這實在太麻煩了,其實MySQL 已內建了這個功能,以下語句可以將 [table] 資料表的 [field] 欄位作 replace 動作,[str_search] 是搜索字串;[str_replace] 是替換字串。

update [table] set [field]=replace([field],’[str_search]’,'[str_replace]’);

如果不想將整個資料表的欄位資料更換,可以在最後用 where 做條件選擇,例如:

update [table] set [field]=replace([field],’[str_search]’,'[str_replace]’) where `zip`=’852′;

以上語句跟第一句的分別是,第二句只會對欄位 “zip” 為 “852″ 的紀錄作更改。

rsync: 備份DreamHost到Mac

我參考DreamHost Wiki的設定,自己摸索了一個小小script,把DreamHost伺服器的檔案備份到Mac上。
rsync -aIR –progress –delete -e ssh “帳號@伺服器.dreamhost.com:" /Users/使用者/Sites/DreamHostBackup

更新:
time sudo 我仔細看了一下別人的語法,大家都沒有用time sudo,後來才發現這是用RsyncX Script Generator產生語法時冒出來的,因為我有勾選Login as root。

sudo我大概知道是以管理者角色登入,但實際意義卻不太有概念,如果用sudo備份的話,有兩個麻煩:1. 每次執行script都要輸入密碼(應該是切換到root的原因吧) 2. 備份回來的檔案,常常因權限不足無法修改。沒有sudo備份回來的檔案數差不多,所以我就移掉這個指令了。

至於time就不知道是什麼指令了…

參數(這是我自己亂試的,不知道好不好,高手路過麻煩指導一下。)

(繼續閱讀…)