<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Linux on Coding</title>
		<link>http://coding.dong.asia/series/linux/</link>
		<description>Recent content in Linux on Coding</description>
		<generator>Hugo</generator>
		<language>cn</language>
		
		
		
			<copyright>京ICP备17034023号 © 2019 隨風揚</copyright>
		
		
			<lastBuildDate>Thu, 15 Mar 2018 02:11:03 +0000</lastBuildDate>
		
			<atom:link href="http://coding.dong.asia/series/linux/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>关于Ubuntu系统中mysql的用户debian-sys-maint</title>
				<link>http://coding.dong.asia/linux/debiansysmaint/</link>
				<pubDate>Thu, 15 Mar 2018 02:11:03 +0000</pubDate>
				<guid>http://coding.dong.asia/linux/debiansysmaint/</guid>
				<description>&lt;p&gt;最近在Ubuntu16上安装nodejs，发生错误如下：&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;mysql_upgrade: Got error: 1045: Access denied for user ‘debian-sys-maint’@’localhost’ (using password: YES) while connecting to the MySQL server&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;Do you want to continue? [Y/n] y&#xD;&#xA;Setting up mysql-server-5.7 (5.7.21-0ubuntu0.16.04.1) ...&#xD;&#xA;mysql_upgrade: Got error: 1045: Access denied for user &amp;#39;debian-sys-maint&amp;#39;@&amp;#39;localhost&amp;#39; (using password: YES) while connecting to the MySQL server&#xD;&#xA;Upgrade process encountered error and will not continue.&#xD;&#xA;mysql_upgrade failed with exit status 11&#xD;&#xA;dpkg: error processing package mysql-server-5.7 (--configure):&#xD;&#xA; subprocess installed post-installation script returned error exit status 1&#xD;&#xA;dpkg: dependency problems prevent configuration of mysql-server:&#xD;&#xA; mysql-server depends on mysql-server-5.7; however:&#xD;&#xA;  Package mysql-server-5.7 is not configured yet.&#xD;&#xA;&#xD;&#xA;dpkg: error processing package mysql-server (--configure):&#xD;&#xA; dependency problems - leaving unconfigured&#xD;&#xA;Errors were encountered while processing:&#xD;&#xA; mysql-server-5.7&#xD;&#xA; mysql-server&#xD;&#xA;E: Sub-process /usr/bin/dpkg returned an error code (1)&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;这个mysql用户debian-sys-main是个什么鬼？为什么mysql_upgrade会用这个用户连接，而且为什么又会密码不对？&lt;/p&gt;</description>
			</item>
			<item>
				<title>日志文件总管logrotate</title>
				<link>http://coding.dong.asia/linux/logrotate/</link>
				<pubDate>Wed, 14 Mar 2018 06:02:59 +0000</pubDate>
				<guid>http://coding.dong.asia/linux/logrotate/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://linuxconfig.org/logrotate&#34;&gt;logrotate官网&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;简介&#34;&gt;简介&lt;/h2&gt;&#xA;&lt;p&gt;logrotate是个十分有用的工具，它可以自动对日志进行截断、轮循、压缩以及删除旧的日志文件。配置完后，logrotate的运作完全自动化，不必进行任何人为干预。&#xA;配置文件通常在/etc/logrotate.conf中，独立配置通常在/etc/logrotate.d/下。&lt;/p&gt;&#xA;&lt;h2 id=&#34;配置&#34;&gt;配置&lt;/h2&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;/var/log/mysql.log /var/log/mysql/*log {&#xD;&#xA;        daily&#xD;&#xA;        rotate 7&#xD;&#xA;        missingok&#xD;&#xA;        create 640 mysql adm&#xD;&#xA;        compress&#xD;&#xA;        sharedscripts&#xD;&#xA;        postrotate&#xD;&#xA;                test -x /usr/bin/mysqladmin || exit 0&#xD;&#xA;                MYADMIN=&amp;#34;/usr/bin/mysqladmin --defaults-file=/etc/mysql/debian.cnf&amp;#34;&#xD;&#xA;                if [ -z &amp;#34;`$MYADMIN ping 2&amp;amp;gt;/dev/null`&amp;#34; ]; then&#xD;&#xA;                  if killall -q -s0 -umysql mysqld; then&#xD;&#xA;                    exit 1&#xD;&#xA;                  fi &#xD;&#xA;                else&#xD;&#xA;                  $MYADMIN flush-logs&#xD;&#xA;                fi&#xD;&#xA;        endscript&#xD;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;手动运行&#34;&gt;手动运行&lt;/h2&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;logroute -f /et/logrotate.conf&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;定时任务&#34;&gt;定时任务&lt;/h2&gt;&#xA;&lt;p&gt;logrotate需要的cron任务应该在安装时就自动创建了：/etc/cron.daily/logrotate&lt;/p&gt;</description>
			</item>
			<item>
				<title>ansible简介</title>
				<link>http://coding.dong.asia/linux/ansible/1/</link>
				<pubDate>Thu, 18 Jan 2018 01:25:03 +0000</pubDate>
				<guid>http://coding.dong.asia/linux/ansible/1/</guid>
				<description>&lt;p&gt;Ansible 是一个基于 Python 的自动化运维的工具，无需安装服务端和客户端，只需要有ssh即可，而且使用简单。同类的产品Puppet、Chef、SaltStack都是基于服务端+客户端的模式。&#xA;官方称之为 “Ansible is Simple IT Automation”。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.ansible.com/&#34;&gt;官网&lt;/a&gt; &lt;a href=&#34;https://github.com/ansible/ansible&#34;&gt;github&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;安装&#34;&gt;安装&lt;/h2&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo apt-get install software-properties-common&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo apt-add-repository ppa:ansible/ansible&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo apt-get update&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo apt-get install ansible&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;命令应用基础&#34;&gt;命令应用基础&lt;/h2&gt;&#xA;&lt;p&gt;&lt;strong&gt;ansible &lt;!-- raw HTML omitted --&gt; [-f forks] [-m module_name] [-a args]&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;-f forks：启动的并发线程数&lt;/p&gt;&#xA;&lt;p&gt;-m module_name: 要使用的模块&lt;/p&gt;&#xA;&lt;p&gt;-a args: 模块特有的参数&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;ansible-doc -l 查看所有模块&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;ansible-doc -s MODULE_NAME 查看指定模块的详细帮助&lt;/strong&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>Linux-PAM模块简介</title>
				<link>http://coding.dong.asia/linux/pam/1/</link>
				<pubDate>Mon, 15 Jan 2018 07:45:54 +0000</pubDate>
				<guid>http://coding.dong.asia/linux/pam/1/</guid>
				<description>&lt;p&gt;Linux-PAM工程的目的就是分离应用软件和验证机制的开发。通过验证函数库可以实现上述目的，一个应用程序可以使用这些函数库去进行用户的认证。&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;模块pam_*.so以动态可加载目标文件(使用dloptn(3)函数打开)的形式保存在 /lib/security、 /lib64/security、/lib/x86_64-linux-gnu/security/等。&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;h2 id=&#34;配置文件&#34;&gt;配置文件：&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;/etc/pam.conf&lt;/li&gt;&#xA;&lt;li&gt;/etc/pam.d/&lt;/li&gt;&#xA;&lt;li&gt;/etc/security/*（其他PAM环境的配置文件）。&#xA;&lt;img src=&#34;https://picabstract-preview-ftn.weiyun.com:8443/ftn_pic_abs_v2/de4bc608ede4692b4a6067058d21e6a5a74a6d2763bb3601a9c61d506fabd4f4f4683902d8ab5caa957d630810317167?pictype=scale&amp;amp;from=30113&amp;amp;version=3.3.3.3&amp;amp;uin=535301&amp;amp;fname=QQ%E6%88%AA%E5%9B%BE20180115140217.png&amp;amp;size=750&#34; alt=&#34;&#34;&gt;&#xA;以/etc/pam.d/sudo配置为例：&#xA;[table id=3 /]&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;table&gt;&#xA;&#x9;&lt;thead&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;验证类型&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;控制标记&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;模块路径&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;模块参数&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&lt;/thead&gt;&#xA;&#x9;&lt;tbody&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;session&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;required&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;pam_env.so&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;readenv=1 envfile=/etc/default/locale user_readenv=0&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://picabstract-preview-ftn.weiyun.com:8443/ftn_pic_abs_v2/e503fe2b2681e192e9c89bea52386380f9171b7eb6178c43d6bc06de92e1a82007757d80a5e2fcd6c677de77eb60643c?pictype=scale&amp;amp;from=30113&amp;amp;version=3.3.3.3&amp;amp;uin=535301&amp;amp;fname=pam%E7%AE%80%E4%BB%8B1.jpeg&amp;amp;size=750&#34; alt=&#34;&#34;&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>ansible git模块</title>
				<link>http://coding.dong.asia/linux/ansible/2/</link>
				<pubDate>Wed, 27 Dec 2017 07:02:46 +0000</pubDate>
				<guid>http://coding.dong.asia/linux/ansible/2/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;http://docs.ansible.com/ansible/latest/git_module.html&#34;&gt;git模块文档&lt;/a&gt;&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ansible 127.0.0.1 -m git -a &lt;span class=&#34;s2&#34;&gt;&amp;#34;repo=&amp;#39;https://github.com/ansible/ansible.git&amp;#39; dest=&amp;#39;/tmp/ansible&amp;#39;&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;通过用户名和密码拉取git代码&#34;&gt;通过用户名和密码拉取git代码&lt;/h2&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-yml&#34; data-lang=&#34;yml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nn&#34;&gt;---&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- &lt;span class=&#34;nt&#34;&gt;hosts&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;all &lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;gather_facts&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;no&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;become&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;yes&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;tasks&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;- &lt;span class=&#34;nt&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;install git package&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;apt&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;        &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;git&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;- &lt;span class=&#34;nt&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;Get updated files from git repository &lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;git&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;        &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;repo&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;http://{{ githubuser | urlencode }}:{{ githubpassword | urlencode }}@github.com/dong4stop/hello.git&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;        &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;dest&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;/tmp/git&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;        &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;version&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;v1.0&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;若密码中有特殊字符可以加上urlencode，{{ githubpassword | urlencode }}。&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ansible-playbook git.yml -e &lt;span class=&#34;s2&#34;&gt;&amp;#34;githubuser=*\*\\*\*&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; -e &lt;span class=&#34;s2&#34;&gt;&amp;#34;githubpassword=\*\**&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
			</item>
	</channel>
</rss>
