行路难三首

其一

金樽清酒斗十千⑴,玉盘珍羞直万钱⑵。
停杯投箸不能食⑶,拔剑四顾心茫然。
欲渡黄河冰塞川,将登太行雪满山。
闲来垂钓碧溪上,忽复乘舟梦日边⑷。
行路难!行路难!多岐路,今安在⑸?
长风破浪会有时⑹,直挂云帆济沧海⑺

其二

大道如青天,我独不得出。
羞逐长安社中儿,赤鸡白狗赌梨栗⑻。
弹剑作歌奏苦声⑼,曳裾王门不称情。
淮阴市井笑韩信,汉朝公卿忌贾生⑽。
君不见昔时燕家重郭隗,拥篲折节无嫌猜⑾。
剧辛乐毅感恩分,输肝剖胆效英才。
昭王白骨萦蔓草,谁人更扫黄金台?
行路难,归去来⑿!

其三

有耳莫洗颍川水,有口莫食首阳蕨⒀。
含光混世贵无名⒁,何用孤高比云月⒂?
吾观自古贤达人,功成不退皆殒身。
子胥既弃吴江上⒃,屈原终投湘水滨。
陆机雄才岂自保⒄?李斯税驾苦不早⒅。
华亭鹤唳讵可闻?上蔡苍鹰何足道⒆?
君不见吴中张翰称达生,秋风忽忆江东行⒇。
且乐生前一杯酒,何须身后千载名?

词句注释
⑴樽(zūn):古代盛酒的器具,以金为饰。清酒:清醇的美酒。斗十千:一斗值十千钱(即万钱),形容酒美价高。
⑵珍羞:珍贵的菜肴。羞,同“馐”,美味的食物。直:通“值”,价值。
⑶箸(zhù):筷子。
⑷“闲来”二句:表示诗人自己对从政仍有所期待。这两句暗用典故:姜太公吕尚曾在渭水的磻溪上钓鱼,得遇周文王,助周灭商;伊尹曾梦见自己乘船从日月旁边经过,后被商汤聘请,助商灭夏。碧,一作“坐”。
⑸“多岐路”二句:岔道这么多,如今身在何处?岐,一作“歧”。安,哪里。
⑹长风破浪:比喻实现政治理想。据《宋书·宗悫传》载:宗悫少年时,叔父宗炳问他的志向,他说:“愿乘长风破万里浪。”
⑺云帆:高高的船帆。船在海里航行,因天水相连,船帆好像出没在云雾之中。
⑻社:古二十五家为一社。白狗:一作“白雉”。
⑼弹剑:战国时齐公子孟尝君门下食客冯谖曾屡次弹剑作歌怨己不如意。
⑽贾生:汉初洛阳贾谊,曾上书汉文帝,劝其改制兴礼,受时大臣反对。
⑾拥篲:燕昭王亲自扫路,恐灰尘飞扬,用衣袖挡帚以礼迎贤士邹衍。折节:一作“折腰”。
⑿归去来:指隐居。语出东晋陶渊明《归去来辞》。
⒀“有口”句:反用伯夷、叔齐典故。《史记·伯夷列传》:“武王已平殷乱,天下宗周,而伯夷、叔齐耻之,义不食周粟,隐于首阳山,采薇而食之……遂饿死于首阳山。”《索引》:“薇,蕨也。”按薇、蕨本二草,前人误以为一。
⒁“含光”句:言不露锋芒,随世俯仰之意。贵无名,以无名为贵。
⒂云月:一作“明月”。
⒃子胥:伍子胥,春秋末期吴国大夫。《吴越春秋》卷五《夫差内传》:“吴王闻子胥之怨恨也,乃使人赐属镂之剑,子胥……遂伏剑而死。吴王乃取子胥尸,盛以鸱夷之器,投之于江中。”又见《国语·吴语》。
⒄陆机:西晋文学家。《晋书·陆机传》载:陆机因宦人诬陷而被杀害于军中,临终叹曰:“华亭鹤唳,岂可复闻乎?”
⒅李斯:秦国统一六国的大功臣,任秦朝丞相,后被杀。《史记·李斯列传》载:李斯喟然叹曰:“……斯乃上蔡布衣……今人臣之位,无居臣上者,可谓富贵极矣。物极则衰,吾未知所税驾?”《索引》:“税驾,犹解驾,言休息也。”
⒆“华亭”二句:用李斯典故。《史记·李斯列传》:“二世二年七月,具斯五刑,论腰斩咸阳市。斯出狱,与其中子俱执,顾谓其中子曰:‘吾欲与若复牵黄犬俱出上蔡东门逐狡兔,岂可得乎!’”《太平御览》卷九二六:《史记》曰:“李斯临刑,思牵黄犬、臂苍鹰,出上蔡门,不可得矣。”
⒇“秋风”句:用张翰典故。《晋书·张翰传》:“张翰,字季鹰,吴郡吴人也。……为大司马东曹掾。……因见秋风起,乃思吴中菰菜、莼羹、鲈鱼脍,曰:‘人生贵得适志,何能羁官数千里,以要名爵乎?’遂命驾而归。……或谓之曰:‘卿乃纵适一时,独不为身后名邪?’答曰:‘使我有身后名,不如即时一杯酒。’时人贵其旷达。”

白话译文

其一
金杯中的美酒一斗价十千,玉盘里的菜肴珍贵值万钱。
  但心情愁烦使得我放下杯筷,不愿进餐。拔出宝剑环顾四周,心里一片茫然。
  想渡过黄河,坚冰堵塞大川;想登太行山,大雪遍布高山。
  遥想当年,姜太公磻溪垂钓,得遇重才的文王;伊尹乘舟梦日,受聘在商汤身边。
  人生的道路何等艰难,何等艰难,歧路纷杂,真正的大道究竟在哪边?
  坚信乘风破浪的时机定会到来,到那时,将扬起征帆远渡碧海青天。
其二
大道虽宽广如青天,唯独没有我的出路。
  我不愿意追随长安城中的富家子弟,去搞斗鸡走狗一类的赌博游戏。
  像冯谖那样弹剑作歌发牢骚,在权贵之门卑躬屈节,那不合我心意。
  韩信发迹之前被淮阴市井之徒讥笑,贾谊才能超群遭汉朝公卿妒忌。
  君不见古时燕昭王重用郭隗,拥篲折节、谦恭下士,毫不嫌疑猜忌。
  剧辛和乐毅感激知遇的恩情,竭忠尽智,以自己的才能为君主效力。
  而今燕昭王之白骨已隐于荒草之中,还有谁能像他那样重用贤士呢?
  世路艰难,我只得归去啦!
其三
不要学许由用颍水洗耳,不要学伯夷和叔齐隐居首阳采薇而食。
  在世上活着贵在韬光养晦,为什么要隐居清高自比云月?
  我看自古以来的贤达之人,功绩告成之后不自行隐退都死于非命。
  伍子胥被吴王弃于吴江之上,屈原最终抱石自沉汨罗江中。
  陆机如此雄才大略也无法自保,李斯以自己悲惨的结局为苦。
  陆机是否还能听见华亭别墅间的鹤唳?李斯是否还能在上蔡东门牵鹰打猎?
  你不知道吴中的张翰是个旷达之人,因见秋风起而想起江东故都。
  生时有一杯酒就应尽情欢乐,何须在意身后千年的虚名?

mysql 分区的真正作用

在mysql 表中 建立分区 很多人都说能够提供查询效率 如果是以主键id分区可以减少查询的范围!
但是也有人说 分区更重要的对数据的管理(清除) 比如保留三个月有效数据 可以将 可以根据时间字段 分区讲三个月前的 数据清除!直接清除分区!想问一下大神 分区到底在哪方面发挥的优势大!应该怎么用?

两种说法都是对的,并且实际上是一回事。数据库分区实际上是提供了数据在物理上的隔离。
你可以这样理解:
你把每天的日记写在了一本无限页数的本子上。有一次,你想回味其中某一篇的日记,你需要打开这个本子逐页查询(顺序遍历);随着日记的增多,某天查的时候你觉得日了狗,为了加快你查找的速度,你终于决定给这个厚厚的本子前面加一个时间的目录(建立索引);然而,好景不长,随着日记数进一步的增长,你发现光是翻目录就要很长时间,这时候你想到可以把你的大本本按月划分拆成不同的小本本(水平分区),并且每个小日记本也有自己的目录(本地索引),这样你的日记就能很科学地管理起来,极大方便了自己的查找。
与此同时你还发现了这么做的另一个好处:某天你突然觉得以前某一个月的自己很傻逼,想把这段时间的日记毁了不让别人看见,那么,只需要把某一个小本本烧掉就行(DROP PARTITION),而不必费劲从一个大本本中去掉那么几十页——这样既不好撕(DELETE效率低)也会影响到查看别的日记(表锁)。

ibdata1文件持续增加的问题定位

Innodb的表有两种存放方式:

第一种共享表空间方式:所有表的索引,数据统一存放在一个共享表空间中,这样会导致共享表空间的空间迅速增长,同时空间回收困难;

第二种独占表空间方式:就是RDS目前采用 的,也就是一张表一个表空间,表中的索引和数据存放在自己独立的表空间中,空间能够比较容易的回收;

无论是独占还是共享表空间,innodb都会有系统共享表空间(ibdata1),该系统表空间主要用于存储数据字典,undo entry,insert buffer,doublewrite buffer,

该系统表空间的增加通常的原因有如下:

a.长时间没有提交事务,同时数据库中有大量的更新,插入,删除 ,导致innodb创建大量的undo来维护一致性读:可以通过show engine innodb status\G查看active的事务:

SHOW ENGINE INNODB STATUS\G

—TRANSACTION 36E, ACTIVE 1256288 sec

MySQL thread id 42, OS thread handle 0x7f8baaccc700, query id 7900290 localhost root

show engine innodb status

Trx read view will not see trx with id >= 36F, sees < 36F

b.mysql 5.1中undo的purge是和master thread 共用一个线程,所以发现show engine inndob status\G中的histtory length过长,则可能的purge的速度到达了瓶颈,

所以在mysql 5.5将undo的purge独立出来,可以设置undo purge的线程个数:

| innodb_purge_threads | 0 |

| innodb_max_purge_lag | 0 |

| innodb_max_purge_size | 0 |

| innodb_purge_batch_size | 20 |

如何查看ibdata1中的文件组建?

开源社区提供了一个工具:innodb_space可以清晰地分析出ibdata1的组成(该工具需要bindata环境)

innodb_space -f /tmp/ibdata1 space-page-type-summary

type                count       percent     description

UNDO_LOG            4430725     80.61       Undo log            

ALLOCATED           1035701     18.84       Freshly allocated

INODE               28348       0.52        File segment inode

INDEX               722         0.01        B+Tree index

IBUF_BITMAP         334         0.01        Insert buffer bitmap

XDES                333         0.01        Extent descriptor

IBUF_FREE_LIST      152         0.00        Insert buffer free list

SYS                 3           0.00        System internal

TRX_SYS             1           0.00        Transaction system header

FSP_HDR             1           0.00        File space header

可以看到ibdata1文件中大量的都是undo_log,在定位到其中的文件组成后,我们可以采取以下方案:

建议用户将版本从5.1升级到5.5,5.5中有独立的purge线程可以很快的回收掉undo log,迁移的过程中由于是采用逻辑迁移,会重建ibdata1文件降低空间使用;

在5.6中可以单独设置undo tablespace文件,避免与ibdata1混用在一起。

己亥杂诗

其一
著书何似观心贤,不奈卮言夜涌泉。
百卷书成南渡岁,先生续集再编年。

其二
我马玄黄盼日曛,关河不窘故将军。
百年心事归平淡,删尽蛾眉惜誓文。

其三
罡风力大簸春魂,虎豹沉沉卧九阍。
终是落花心绪好,平生默感玉皇恩。

其四
此去东山又北山,镜中强半尚红颜。
白云出处从无例,独往人间竟独还。

〈予不携眷属傔从。雇两车,以一车自载,一车载文集百卷出都。〉

其五
浩荡离愁白日斜,吟鞭东指即天涯。
落红不是无情物,化作春泥更护花。

其六
亦曾橐笔侍銮坡,午夜天风伴玉珂。
欲浣春衣仍护惜,乾清门外露痕多。

其七
廉锷非关上帝才,百年淬厉电光开。
先生宦后谁谈减,悄向龙泉祝一回。

其八
太行一脉走媪蜿,莽莽畿西虎气蹲。
送我摇鞭竟东去,此山不语看中原。

〈别西山〉

其九
翠微山在柘潭侧,此山有情惨难别。
薜荔风号义士魂,燕支土蚀佳人骨。

〈别翠微山〉

其十
进退雍容史上难,忽收古泪出长安。
百年綦辙低徊遍,忍作空桑三宿看?

〈先大父宦京师,家大人宦京师,至小子,三世百年矣!以己亥岁四月二十三日出都。〉

其十一
祖父头衔旧颎光,祠曹我亦试为郎。
君恩够向渔樵说,篆墓何须百字长?
〈唐碑额有近百字者〉

其十二
掌故罗胸是国恩,小胥脱腕万言存。
他年金鐀如搜采,来叩空山夜雨门。

其十三
出事公卿溯戊寅,云烟万态马蹄湮。
当年筮仕还嫌晚,已哭同朝三百人。

其十四
颓波难挽挽颓心,壮岁曾为九牧箴。
锺簴苍凉行色晚,狂言重起廿年喑。

其十五
许身何必定夔皋,简要清通已足豪。
读到嬴刘伤骨事,误渠毕竟是锥刀。

其十六
弃妇丁甯嘱小姑,姑恩莫负百年劬。
米盐种种家常话,泪湿红裙未绝裾。

〈有弃妇泣于路隅,因书所见。〉

其十七
金门缥缈廿年身,悔向云中露一鳞。
终古汉家狂执戟,谁疑臣朔是星辰?

其十八
词家从不觅知音,累汝千回带泪吟。
惹得而翁怀抱恶,小桥独立惨归心。

〈吾女阿辛,书冯延巳词三阕,日日诵之。自言能识此词之旨,我竟不知也。〉

其十九
卿筹烂熟我筹之,我有忠言质幻师:
观理自难观势易,弹丸垒到十枚时。

〈道旁见鬻戏术者,因赠。〉

其二十
消息闲凭曲艺看,考工文字太丛残。
五都黍尺无人校,抢攘廛间一饱难。

〈过肆市有感〉

其二十一
满拟新桑遍冀州,重来不见绿云稠。
书生挟策成何济?付与维南织女愁。

〈曩陈北直种桑之策于畿辅大吏。〉

其二十二
车中三观夕惕若,七岁灵文电熠若。
忏摩重起耳提若,三普贯珠累累若。

〈予持陀罗尼已满四十九万卷,乃新定课程,日颂普贤、普门、普眼之文。〉

其二十三
荒村有客抱蠹鱼,万一谈经引到渠。
终胜秋磷无姓氏,沙涡门外五尚书。

〈逆旅夜闻读书声,戏赠。沙涡门即广渠门,门外五里许有地名名五尚书坟。五尚书不知皆何许人也。〉

其二十四
谁肯栽培木一章?黄泥亭子白茅堂。
新蒲新柳三年大,便与儿孙作屋梁。
〈道旁风景如此〉

其二十五
椎埋三辅饱于鹰,薛下人家六万增。
半与城门充校尉,谁将斜谷械阳陵?

其二十六
逝矣斑骓罥落花,前村茅店即吾家。
小桥报有人痴立,泪泼春帘一饼茶。

〈出都日,距国门已七里,吴虹生同年立桥上候予过,设茶,洒泪而别。〉

其二十七
秀出天南笔一枝,为官风骨称其诗。
野棠花落城隅晚,各记春骝恋絷时。

〈别石屏朱丹木同年雘。丹木以引见入都,为予治装,与予先后出都。〉

其二十八
不是逢人苦誉君,亦狂亦侠亦温文。
照人胆似秦时月,送我情如岭上云。

〈别黄蓉石比部玉阶。蓉石,番禺人。〉

其二十九
觥觥益阳风骨奇,壮年自定千首诗。
勇于自信故英绝,胜彼优孟俯仰为。

〈别汤海秋户部鹏〉

其三十
事事相同古所难,如鹣如鲽在长安。
自今两戒河山外,各逮而孙盟不寒。

〈光州吴虹生葆晋,与予戊寅同年,己丑同年,同出清苑王公门,殿上试同不及格,同官内阁,同改外,同日还原官。〉

归去来兮辞

余家贫,耕植不足以自给。幼稚盈室,瓶无储粟。生生所资,未见其术。亲故多劝余为长吏,脱然有怀,求之靡途。会有四方之事,诸侯以惠爱为德;家叔以余贫苦,遂见用于小邑。于时风波未静,心惮远役。彭泽去家百里,公田之利,足以为酒,故便求之。及少日,眷然有归欤之情。何则?质性自然,非矫厉所得;饥冻虽切,违己交病。尝从人事,皆口腹自役。于是怅然慷慨,深愧平生之志。犹望一稔,当敛裳宵逝。寻程氏妹丧于武昌,情在骏奔,自免去职。仲秋至冬,在官八十馀日。因事顺心,命篇曰〈归去来兮〉。乙巳岁十一月也。
归去来兮,田园将芜胡不归?既自以心为形役,奚惆怅而独悲?悟已往之不谏,知来者之可追;实迷途其未远,觉今是而昨非。舟遥遥以轻飏,风飘飘而吹衣。问征夫以前路,恨晨光之熹微。

乃瞻衡宇,载欣载奔。僮仆欢迎,稚子候门。三径就荒,松菊犹存。携幼入室,有酒盈樽。引壶觞以自酌,眄庭柯以怡颜。倚南窗以寄傲,审容膝之易安。园日涉以成趣,门虽设而常关。策扶老以流憩,时矫首而遐观。云无心以出岫,鸟倦飞而知还。景翳翳以将入,抚孤松而盘桓。

归去来兮,请息交以绝游。世与我而相违,复驾言兮焉求?悦亲戚之情话,乐琴书以消忧。农人告余以春及,将有事于西畴。或命巾车,或棹孤舟。既窈窕以寻壑,亦崎岖而经丘。木欣欣以向荣,泉涓涓而始流。善万物之得时,感吾生之行休。

已矣乎!寓形宇内复几时?曷不委心任去留?胡为乎遑遑欲何之?富贵非吾愿,帝乡不可期。怀良辰以孤往,或植杖而耘耔。登东皋以舒啸,临清流而赋诗。聊乘化以归尽,乐夫天命复奚疑?

JavaScript sleep Function

// https://zeit.co/blog/async-and-await
function sleep (time) {
  return new Promise((resolve) => setTimeout(resolve, time));
}

// Usage!
sleep(500).then(() => {
    // Do something after the sleep!
})

Linux and Curl: How to use Bash to Read a File Line by Line and Execute Curl command to get HTTP Response Code

for URL in `cat crunchify.txt`; do echo $URL; curl -m 10 -s -I $1 "$URL" | grep HTTP/1.1 |  awk {'print $2'}; done

-m: Maximum time in seconds that you allow the whole operation to take. This is useful for preventing your batch jobs from hanging for hours due to any network issue

-s: show error message

-I: Show document info only

awk: matches the pattern and prints result

30 Handy Bash Shell Aliases For Linux / Unix / Mac OS X

### Get os name via uname ###
_myos="$(uname)"
 
### add alias as per os using $_myos ###
case $_myos in
   Linux) alias foo='/path/to/linux/bin/foo';;
   FreeBSD|OpenBSD) alias foo='/path/to/bsd/bin/foo' ;;
   SunOS) alias foo='/path/to/sunos/bin/foo' ;;
   *) ;;
esac

alias c='clear'

# if user is not root, pass all commands via sudo #
if [ $UID -ne 0 ]; then
    alias reboot='sudo reboot'
    alias update='sudo apt-get upgrade'
fi

## Colorize the ls output ##
alias ls='ls --color=auto'
 
## Use a long listing format ##
alias ll='ls -la'
 
## Show hidden files ##
alias l.='ls -d .* --color=auto'


## get rid of command not found ##
alias cd..='cd ..'
 
## a quick way to get out of current directory ##
alias ..='cd ..'
alias ...='cd ../../../'
alias ....='cd ../../../../'
alias .....='cd ../../../../'
alias .4='cd ../../../../'
alias .5='cd ../../../../..'


## Colorize the grep command output for ease of use (good for log files)##
alias grep='grep --color=auto'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'

alias bc='bc -l'

alias sha1='openssl sha1'

alias mkdir='mkdir -pv'

# install  colordiff package 🙂
alias diff='colordiff'

alias mount='mount |column -t'


# handy short cuts #
alias h='history'
alias j='jobs -l'


alias path='echo -e ${PATH//:/\\n}'
alias now='date +"%T"'
alias nowtime=now
alias nowdate='date +"%d-%m-%Y"'


alias vi=vim
alias svi='sudo vi'
alias vis='vim "+set si"'
alias edit='vim'

# Stop after sending count ECHO_REQUEST packets #
alias ping='ping -c 5'
# Do not wait interval 1 second, go fast #
alias fastping='ping -c 100 -s.2'

alias ports='netstat -tulanp'

## replace mac with your actual server mac address #
alias wakeupnas01='/usr/bin/wakeonlan 00:11:32:11:15:FC'
alias wakeupnas02='/usr/bin/wakeonlan 00:11:32:11:15:FD'
alias wakeupnas03='/usr/bin/wakeonlan 00:11:32:11:15:FE'

## shortcut  for iptables and pass it via sudo#
alias ipt='sudo /sbin/iptables'
 
# display all rules #
alias iptlist='sudo /sbin/iptables -L -n -v --line-numbers'
alias iptlistin='sudo /sbin/iptables -L INPUT -n -v --line-numbers'
alias iptlistout='sudo /sbin/iptables -L OUTPUT -n -v --line-numbers'
alias iptlistfw='sudo /sbin/iptables -L FORWARD -n -v --line-numbers'
alias firewall=iptlist

# get web server headers #
alias header='curl -I'
 
# find out if remote server supports gzip / mod_deflate or not #
alias headerc='curl -I --compress'

# do not delete / or prompt if deleting more than 3 files at a time #
alias rm='rm -I --preserve-root'
 
# confirmation #
alias mv='mv -i'
alias cp='cp -i'
alias ln='ln -i'
 
# Parenting changing perms on / #
alias chown='chown --preserve-root'
alias chmod='chmod --preserve-root'
alias chgrp='chgrp --preserve-root'

# distro specific  - Debian / Ubuntu and friends #
# install with apt-get
alias apt-get="sudo apt-get"
alias updatey="sudo apt-get --yes"
 
# update on one command
alias update='sudo apt-get update && sudo apt-get upgrade'

# become root #
alias root='sudo -i'
alias su='sudo -i'


# reboot / halt / poweroff
alias reboot='sudo /sbin/reboot'
alias poweroff='sudo /sbin/poweroff'
alias halt='sudo /sbin/halt'
alias shutdown='sudo /sbin/shutdown'


# also pass it via sudo so whoever is admin can reload it without calling you #
alias nginxreload='sudo /usr/local/nginx/sbin/nginx -s reload'
alias nginxtest='sudo /usr/local/nginx/sbin/nginx -t'
alias lightyload='sudo /etc/init.d/lighttpd reload'
alias lightytest='sudo /usr/sbin/lighttpd -f /etc/lighttpd/lighttpd.conf -t'
alias httpdreload='sudo /usr/sbin/apachectl -k graceful'
alias httpdtest='sudo /usr/sbin/apachectl -t && /usr/sbin/apachectl -t -D DUMP_VHOSTS'


## pass options to free ##
alias meminfo='free -m -l -t'
 
## get top process eating memory
alias psmem='ps auxf | sort -nr -k 4'
alias psmem10='ps auxf | sort -nr -k 4 | head -10'
 
## get top process eating cpu ##
alias pscpu='ps auxf | sort -nr -k 3'
alias pscpu10='ps auxf | sort -nr -k 3 | head -10'
 
## Get server cpu info ##
alias cpuinfo='lscpu'
 
## older system use /proc/cpuinfo ##
##alias cpuinfo='less /proc/cpuinfo' ##
 
## get GPU ram on desktop / laptop##
alias gpumeminfo='grep -i --color memory /var/log/Xorg.0.log'

## this one saved by butt so many times ##
alias wget='wget -c'

## set some other defaults ##
alias df='df -H'
alias du='du -ch'
 
# top is atop, just like vi is vim
alias top='atop'



Centos7.3配置Supervisor遇到的一些小问题

首先安装:

yum install -y supervisor

然后创建扩展配置文件:

cd /etc/supervisord.d
vi laravel-worker.ini

写入以下内容:

[program:laravel-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /你的Linux完整项目地址/artisan queue:work redis --sleep=3 --tries=3
autostart=true
autorestart=true
user=www
numprocs=8
redirect_stderr=true
stdout_logfile=/www/wwwroot/app/worker.log

以下是说明:

command:XX 程序启动命令
autostart=true ;在supervisord启动的时候也自动启动
autorestart=true ;程序退出后自动重启,可选值:[unexpected,true,false],默认为unexpected,表示进程意外杀死后才重启
user=www ;用哪个用户启动进程,默认是root
numprocs=8 ;指定 Supervisor 运行 8 个 queue:work 进程并且监管它们,
redirect_stderr=true ;stderr重定向到stdout,默认false
stdout_logfile=/www/wwwroot/app/worker.log ;stdout 日志文件,需要注意当指定目录不存在时无法正常启动,所以需要手动创建目录(supervisord 会自动创建日志文件)

执行命令启动Supervisor:

执行:

sudo supervisorctl reread

但是报错:

error: <class 'socket.error'>, [Errno 2] No such file or directory: file: /usr/lib64/python2.7/socket.py line: 224

执行:

supervisord

再执行:

sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl start laravel-worker:*

OK了

MySQL – Convert all Tables of one or more Database(s) from MyISAM to InnoDB

To convert all DBNAME’s InnoDB Tables to MyISAM

SELECT CONCAT('ALTER TABLE ', TABLE_SCHEMA, '.', TABLE_NAME,' ENGINE=MyISAM;') 
FROM Information_schema.TABLES WHERE TABLE_SCHEMA = 'DBNAME' AND ENGINE = 'InnoDB' AND TABLE_TYPE = 'BASE TABLE'

To convert all DBNAME’s MyISAM Tables to InnoDB

SELECT CONCAT('ALTER TABLE ', TABLE_SCHEMA, '.', TABLE_NAME,' ENGINE=InnoDB;') 
FROM Information_schema.TABLES WHERE TABLE_SCHEMA = 'DBNAME' AND ENGINE = 'MyISAM' AND TABLE_TYPE = 'BASE TABLE'

To convert all InnoDB Tables to MyISAM (all databases)

SELECT CONCAT('ALTER TABLE ', TABLE_SCHEMA, '.', TABLE_NAME, ' engine=MyISAM;') 
FROM information_schema.TABLES WHERE ENGINE = 'InnoDB';

To convert all MyISAM Tables to InnoDB (all databases)

SELECT CONCAT('ALTER TABLE ', TABLE_SCHEMA, '.', TABLE_NAME, ' engine=InnoDB;') 
FROM information_schema.TABLES WHERE ENGINE = 'MyISAM';