<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Blogmotion &#187; cron</title>
	<atom:link href="http://blogmotion.fr/tag/cron/feed" rel="self" type="application/rss+xml" />
	<link>http://blogmotion.fr</link>
	<description>Culture web et nouvelles technologies informatiques</description>
	<lastBuildDate>Sat, 11 Feb 2012 11:53:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<meta name="generator" content="WordPress" />
	<atom:link rel='hub' href='http://blogmotion.fr/?pushpress=hub'/>
		<item>
		<title>Lister les cron job de tous les utilisateurs Linux</title>
		<link>http://blogmotion.fr/systeme/list-cron-job-all-users-4395</link>
		<comments>http://blogmotion.fr/systeme/list-cron-job-all-users-4395#comments</comments>
		<pubDate>Thu, 12 Nov 2009 23:32:31 +0000</pubDate>
		<dc:creator>Mr Xhark</dc:creator>
				<category><![CDATA[Système]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[cron]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[liste]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[tache]]></category>
		<category><![CDATA[utilisateur]]></category>

		<guid isPermaLink="false">http://blogmotion.fr/?p=4395</guid>
		<description><![CDATA[Les Cron (tâches) sont rattachés à un utilisateur système sous le système d&#8217;exploitation Linux. Par mesure de sécurité il est fortement conseillé d&#8217;exécuter ces crons sous un autre utilisateur que root. Dans le cas où vous faites de la maintenance sur des serveurs ne vous appartenant pas, cela devient vite un casse tête de trouver [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-4396" style="border: 1px solid #ccc; margin: 10px;" title="cron-linux" src="http://blogmotion.fr/wp-content/uploads/2009/11/cron-linux.png" alt="cron-linux" width="100" height="100" />Les <a title="Modifier l’éditeur de texte par défaut Linux (crontab)" href="http://blogmotion.fr/systeme/modifier-lediteur-de-texte-par-defaut-linux-crontab-1745">Cron</a> (tâches) sont rattachés à un utilisateur système sous le système d&#8217;exploitation Linux.</p>
<p>Par mesure de sécurité il est fortement conseillé d&#8217;exécuter ces crons sous un autre utilisateur que root. Dans le cas où vous faites de la maintenance sur des serveurs ne vous appartenant pas, cela devient vite un casse tête de trouver <strong>quel utilisateur exécute ces tâches ?</strong></p>
<p>A titre de rappel, la commande pour <strong>lister les cron job de l&#8217;utilisateur courant</strong> :</p>
<pre class="brush: bash; title: ; notranslate"># crontab -l</pre>
<p><strong>Pour lister les cron job d&#8217;un autre utilisateur</strong> que l&#8217;utilisateur courant :</p>
<pre class="brush: bash; title: ; notranslate"># crontab -u nom_utilisateur -l</pre>
<p>A condition toutefois d&#8217;avoir les droits de lecture sur le fichier, ce qui peut ne pas être le cas pour tous les utilisateurs.</p>
<p>Je vous propose de <strong>lister les tâches de tous les utilisateurs</strong> (listés dans /etc/passwd). Définissons un alias depuis l&#8217;utilisateur root :</p>
<pre class="brush: bash; title: ; notranslate"># alias cronall='for user in $(cut -f1 -d: /etc/passwd); do echo -e &quot;\n\n==&gt; $user:&quot; &amp;&amp; crontab -u $user -l; done'</pre>
<p>Il vous suffit ensuite de faire appel à <em>cronall</em><span id="more-4395"></span> :</p>
<pre class="brush: bash; title: ; notranslate"># cronall

==&gt; root:
# m h  dom mon dow   command
30 23 * * * df &gt;&gt; test_blogmotion.fr

==&gt; daemon:
no crontab for daemon

==&gt; bin:
no crontab for bin

==&gt; sys:
no crontab for sys

==&gt; sync:
no crontab for sync

==&gt; mail:
no crontab for mail

==&gt; www-data:
no crontab for www-data

==&gt; backup:
no crontab for backup
</pre>
<p>Les tâches sont listées par utilisateur, plutôt pratique. Dans mon cas, seul l&#8217;utilisateur root possédait un cron job.</p>
<p><span style="text-decoration: underline;">Attention</span> : ce script ne fonctionne pas sur les crons périodiques (cron.daily, cron.weekly, etc.) qui sont dans des répertoires distincts et non liés à un utilisateur mais au système. Pour <strong>lister ces crons</strong> une commande simple suffira pour trouver ce que vous cherchez :</p>
<pre class="brush: bash; title: ; notranslate">cat /etc/cron.d/* | grep &quot;votre recherche&quot;</pre>
<p>De même que pour <strong>lister tous les scripts</strong> (sans le contenu) :</p>
<pre class="brush: bash; title: ; notranslate">ls -al /etc/cron.*</pre>
<p><a href="http://stackoverflow.com/questions/134906/how-do-i-list-all-cron-jobs-for-all-users"><em>Source d&#8217;inspiration du premier script</em></a></p>
Vous devriez me suivre sur Twitter : <strong><a href="http://twitter.com/xhark">@xhark</a></strong>
<hr />
<p><small><a href="http://blogmotion.fr/systeme/list-cron-job-all-users-4395">Article original</a> écrit par Mr Xhark publié sur <a href="http://blogmotion.fr">Blogmotion</a> le 13/11/2009 |
<a href="http://blogmotion.fr/systeme/list-cron-job-all-users-4395#comments">5 commentaires</a> |
<br />Attention : l'intégralité de ce billet est protégée par la licence <a href="http://creativecommons.org/licenses/by-nc-sa/2.0/fr/">Creative Commons</a> 
</small></p>]]></content:encoded>
			<wfw:commentRss>http://blogmotion.fr/systeme/list-cron-job-all-users-4395/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Connexion SSH et transfert RSYNC, SCP, SFTP sans mot de passe</title>
		<link>http://blogmotion.fr/systeme/connexion-ssh-et-transfert-rsync-scp-sftp-sans-mot-de-passe-2709</link>
		<comments>http://blogmotion.fr/systeme/connexion-ssh-et-transfert-rsync-scp-sftp-sans-mot-de-passe-2709#comments</comments>
		<pubDate>Sun, 10 May 2009 21:58:55 +0000</pubDate>
		<dc:creator>Mr Xhark</dc:creator>
				<category><![CDATA[Système]]></category>
		<category><![CDATA[authentification]]></category>
		<category><![CDATA[connexion]]></category>
		<category><![CDATA[cron]]></category>
		<category><![CDATA[distant]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mot de passe]]></category>
		<category><![CDATA[sans]]></category>
		<category><![CDATA[scp]]></category>
		<category><![CDATA[serveur]]></category>
		<category><![CDATA[sftp]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[transfert]]></category>

		<guid isPermaLink="false">http://blogmotion.fr/?p=2709</guid>
		<description><![CDATA[But : se connecter en secure shell (SSH) sans entrer de mot de passe entre deux machines Linux. Principe Il peut-être utile d&#8217;automatiser des transferts de fichiers de façon sécurisée entre deux machines fonctionnant sous une distribution Linux. Vous pouvez par exemple créer des CRONS qui se chargeront d&#8217;effectuer un transfert via rsync, généralement utilisé [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-2748" style="border: 1px solid #cccccc;" title="authentification-ssh-sans-mot-de-passe" src="http://blogmotion.fr/wp-content/uploads/2009/05/authentification-ssh-sans-mot-de-passe.png" alt="authentification-ssh-sans-mot-de-passe" width="150" height="150" /><strong>But</strong> : se connecter en <strong>secure shell</strong> (SSH) <strong>sans entrer de mot de passe</strong> entre deux machines <strong>Linux</strong>.</p>
<h3>Principe</h3>
<p>Il peut-être utile d&#8217;<strong>automatiser</strong> des transferts de fichiers de façon sécurisée entre deux machines fonctionnant sous une distribution Linux.</p>
<p>Vous pouvez par exemple créer des CRONS qui se chargeront d&#8217;effectuer un <strong>transfert</strong> via rsync, généralement utilisé pour créer des sauvegardes entre deux serveurs distincts.</p>
<p>Le principe reste le même : on établit une <strong>connexion SSH</strong> dans laquelle vont circuler les données (via rsync, scp ou sftp).<span id="more-2709"></span></p>
<p>Une connexion SSH s&#8217;établit avec un nom d&#8217;utilisateur autorisé à se connecter en SSH sur la machine (voir <a href="http://www.delafond.org/traducmanfr/man/man5/sshd_config.5.html">sshd_config</a>), ainsi qu&#8217;un mot de passe associé à ce compte. Un échange de <strong>clé publique</strong> s&#8217;effectue ensuite pour créer une connexion SSH sécurisée, <a href="http://fr.wikipedia.org/wiki/Ssh">plus d&#8217;infos chez Wikipedia</a>.</p>
<p>Pour que la machine <strong>distante</strong> accepte une <strong>connexion sans mot de passe</strong>, il faut que le serveur distant possède la <strong>clé publique</strong> du serveur <strong>local</strong> (dans la liste des clés publiques autorisées à effectuer une connexion sans mot de passe).</p>
<p>Nota : toutes les commandes de ce guide ont été effectuées sous Debian Etch (4.0), mais elle restent valables sur de nombreuses distributions : Debian toutes versions, Red Hat, CentOS, etc.</p>
<h3>Etape 1 : générer la clé publique (machine locale)</h3>
<p>Connectez-vous en root sur la machine locale, puis générer la clé :</p>
<pre>ssh-keygen -t dsa -b 1024</pre>
<pre class="brush: bash; title: ; notranslate">serveurlocal:# ssh-keygen -t dsa -b 1024
Generating public/private dsa key pair.
Enter file in which to save the key (/root/.ssh/id_dsa): [TOUCHE ENTREE]
Enter passphrase (empty for no passphrase):[TOUCHE ENTREE]
Enter same passphrase again:[TOUCHE ENTREE]
Your identification has been saved in /root/.ssh/id_dsa.
Your public key has been saved in /root/.ssh/id_dsa.pub.
The key fingerprint is:
44:f8:69:4b:ad:9f:bd:42:dd:3d:17:04:0d:f0:b9:81 root@serveurlocal
The key's randomart image is:
+--[ DSA 1024]----+
|       ..  ..o+  |
|      ..    o .o |
|       ..o E +.  |
|       .= .   o. |
|       oSo . o ..|
|        o . . ..o|
|         o o    o|
|          + .    |
|           ...   |
+-----------------+
serveurlocal:#</pre>
<p>Attention : n&#8217;entrez aucun <em>passphrase</em>, validez par entrée. Si vous entrez un <em>passphrase</em> il devra être entré à chaque demande de connexion, nous perdons le bénéfice de l&#8217;automatisation <img src='http://blogmotion.fr/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Cela va générer deux fichiers dans le répertoire <em>/root/.ssh/</em> :</p>
<ul>
<li>id_dsa : la clé <strong>privée</strong> (à ne pas diffuser), appelée <em>identification</em> pour identité</li>
<li>id_dsa.pub : la clé <strong>publique</strong></li>
</ul>
<p><span style="text-decoration: underline;">Note</span> : n&#8217;utilisez que des clés de 1024 bits maximum, vous pourrez sinon avoir le message d&#8217;erreur : &laquo;&nbsp;DSA keys must be 1024 bits&nbsp;&raquo;.</p>
<h3>Etape 2 : transférer la clé publique dans le serveur distant</h3>
<p><strong>Plusieurs méthodes</strong> s&#8217;offrent à vous pour transférer la clé publique vers la machine distante, nous allons toutes les voir en détail.</p>
<h4>Méthode A : Transfert via ssh-copy-id</h4>
<p>La commande <a href="http://www.delafond.org/traducmanfr/man/man1/ssh-copy-id.1.html">ssh-copy-id</a> permet d&#8217;installer votre <strong>clé publique</strong> sur une <strong>machine distante</strong> :</p>
<pre class="brush: bash; title: ; notranslate">serveurlocal:~# ssh-copy-id -i /root/.ssh/id_dsa.pub root@serveurdistant
root@serveurdistant's password:
Now try logging into the machine, with &quot;ssh 'root@serveurdistant'&quot;, and check in:

.ssh/authorized_keys

to make sure we haven't added extra keys that you weren't expecting.

serveurlocal:~#</pre>
<p>L&#8217;intérêt de cette commande est double puisqu&#8217;elle place la clé directement dans le serveur distant et elle applique également les <strong>bons droits</strong> (chmod) sur le répertoire <em>~/.ssh</em> ainsi que sur le fichier <em>authorized_keys</em>.</p>
<p><em>Liens utiles : <a href="http://www.qth.fr/tag/ssh-copy-id">QTH</a> (pour ssh-copy-id)</em></p>
<h4>Méthode B : Transfert via SCP</h4>
<p><span style="text-decoration: underline;"><strong>Pré-requis</strong></span> : connectez-vous en SSH sur le serveur distant, puis vérifiez que le répertoire <strong><em>~/.ssh</em></strong> existe ainsi que le fichier <em><strong>authorized_keys</strong></em> Si ce n&#8217;est pas le cas, les créer  et appliquer les bons droits :</p>
<pre class="brush: bash; title: ; notranslate">serveurdistant:# mkdir ~/.ssh
chmod 700 ~/.ssh
touch ~/.ssh/authorized_keys
chmod 600 ~/.ssh</pre>
<p>Vous pouvez ensuite envoyer la clé publique du serveur local en utilisant le de transfert <a href="http://fr.wikipedia.org/wiki/Secure_copy">SeCure coPy</a> (SCP) :</p>
<pre>scp ~/.ssh/id_dsa.pub root@serveurdistant:/root/clelocale.pub</pre>
<pre class="brush: bash; title: ; notranslate">serveurlocal:~# scp ~/.ssh/id_dsa.pub root@serveurdistant:/root/clelocale.pub
The authenticity of host 'serveurdistant (82.0.1.2)' can't be established.
RSA key fingerprint is 17:5d:99:24:b5:e1:b0:3a:98:e9:90:59:0d:1e:c6:9c.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'serveurdistant,82.0.1.2' (RSA) to the list of known hosts.
root@serveurdistant's password:
id_dsa.pub                                                                     100%  608     0.6KB/s   00:00
serveurlocal:~#</pre>
<p>A la question &laquo;&nbsp;<em>Are you sure you want to continue connecting</em>&nbsp;&raquo; bien répondre <strong>yes</strong> (en toutes lettres).</p>
<p>Ajoutons ensuite la clé dans le fichier <em>~/.ssh/authorized_keys</em> :</p>
<pre>cat /root/clelocale.pub &gt;&gt; ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
rm -f /root/clelocale.pub</pre>
<p><em>Liens : <a href="http://perso.univ-lyon2.fr/~brogniar/notes/ssh-sans-pw.html">Joël Brogniart</a>, <a href="http://www.notmyidea.org/article/vite-fait-automatiser-une-connexion-en-ssh/">NotMyIdea (Alexis Métaireau)</a></em></p>
<h4>Méthode C : Transfert via SSH + commande (manuel)</h4>
<p>Réservée aux <strong>geeks ultimes</strong>, cette technique permet en une ligne de commande de faire tout le boulot, elle ressemble un peu à la commande <em>ssh-copy-id</em> puisqu&#8217;elle permet d&#8217;écrire dans la valeur de la clé stockée localement dans le serveur distant <img src='http://blogmotion.fr/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<pre>ssh root@serveurdistant "echo $(cat ~/.ssh/id_dsa.pub) &gt;&gt; .ssh/authorized_keys"</pre>
<p>Pensez également à faire un coup de <em>chmod</em> par <strong>mesure de sécurité</strong> :</p>
<pre>cat /root/clelocale.pub &gt;&gt; ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
rm -f /root/clelocale.pub</pre>
<p><em>Liens : <a href="http://www.hostingrails.com/wiki/27/HowTo-SSHSCP-without-a-password">Hostingrails</a>, <a href="http://doc.ubuntu-fr.org/ssh">Ubuntu (ssh)</a>, <a href="http://doc.ubuntu-fr.org/ssh">Yoann&#8217;s Blog</a></em></p>
<h3>Exemple de transfert via Rsync</h3>
<p>Voici un exemple de transfert de fichier entre les deux machines grâce à <a href="http://fr.wikipedia.org/wiki/Rsync">Rsync</a>, il ne faut pas oublier de <strong>préciser la clé publique</strong> dans la commande :</p>
<pre>rsync -avz -e "ssh -i /root/.ssh/id_dsa" root@serveurdistant:/chemin/distant /chemin/local</pre>
<p><em>Lien : <a href="http://troy.jdmz.net/rsync/index.html">Jdmz</a></em></p>
<h3>Aspect sécurité</h3>
<p>Je vous <strong>déconseille fortement</strong> d&#8217;utiliser ce genre de transfert directement avec l&#8217;utilisateur <strong>root</strong>, vous comprendrez que si la clé publique vous est dérobée (par un quelconque piratage de votre site/serveur) vous <strong>offrez </strong>une connexion à un second serveur en SSH sans mot de passe&#8230;</p>
<p>Je vous invite plutôt à créer un <strong>second utilisateur</strong> unix qui ne sera pas super-utilisateur, quitte à lui donner différents <strong>droits d&#8217;exécution</strong> via le fichiers <a href="http://guide.andesi.org/html/ksudo.html#AEN6525">sudoers</a>. C&#8217;est aussi pour cela que j&#8217;ai assez insisté sur le <strong>chmod</strong>, qui ne rendra visible la clé publique que à l&#8217;utilisateur concerné : il serait impossible, en exploitant une quelconque <strong>faille</strong> d&#8217;un mauvais script PHP, de récupérer cette clé publique car l&#8217;utilisateur  exécutant sera celui d&#8217;apache (www-data ou httpd) et n&#8217;aura aucun droit dessus.</p>
<p>Je partagerai prochainement l&#8217;un de mes scripts à base de rsync qui exploite ces échanges <strong>SSH sans mot de passe</strong> <img src='http://blogmotion.fr/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Note : le fichier <em>~/.ssh/authorized_keys</em> ne doit contenir <strong>aucun retour chariot</strong> pour une même clé, mais uniquement pour séparer les différentes clés autorisée.</p>
Vous devriez me suivre sur Twitter : <strong><a href="http://twitter.com/xhark">@xhark</a></strong>
<hr />
<p><small><a href="http://blogmotion.fr/systeme/connexion-ssh-et-transfert-rsync-scp-sftp-sans-mot-de-passe-2709">Article original</a> écrit par Mr Xhark publié sur <a href="http://blogmotion.fr">Blogmotion</a> le 10/05/2009 |
<a href="http://blogmotion.fr/systeme/connexion-ssh-et-transfert-rsync-scp-sftp-sans-mot-de-passe-2709#comments">32 commentaires</a> |
<br />Attention : l'intégralité de ce billet est protégée par la licence <a href="http://creativecommons.org/licenses/by-nc-sa/2.0/fr/">Creative Commons</a> 
</small></p>]]></content:encoded>
			<wfw:commentRss>http://blogmotion.fr/systeme/connexion-ssh-et-transfert-rsync-scp-sftp-sans-mot-de-passe-2709/feed</wfw:commentRss>
		<slash:comments>32</slash:comments>
		</item>
		<item>
		<title>Service de WebCron gratuit</title>
		<link>http://blogmotion.fr/internet/service-de-webcron-gratuit-1038</link>
		<comments>http://blogmotion.fr/internet/service-de-webcron-gratuit-1038#comments</comments>
		<pubDate>Thu, 02 Oct 2008 12:18:52 +0000</pubDate>
		<dc:creator>Mr Xhark</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[cron]]></category>
		<category><![CDATA[exécution]]></category>
		<category><![CDATA[job]]></category>
		<category><![CDATA[programmer]]></category>
		<category><![CDATA[tache]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://blogmotion.fr/?p=1038</guid>
		<description><![CDATA[Pour celles et ceux qui ne disposent pas de serveur dédié pour héberger leur site internet, mais seulement d&#8217;un hébergement mutualisé, vous connaissez peut-être Webcron.org (le cron version web). Il permet d&#8217;atteindre des pages à une date et une heure précise. De cette façon vous pouvez programmer l&#8217;exécution d&#8217;une tâche via un script PHP par [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><img class="alignright size-full wp-image-1039" style="margin: 5px;" title="cronjob" src="http://blogmotion.fr/wp-content/uploads/2008/10/cronjob.png" alt="" width="150" height="90" />Pour celles et ceux qui ne disposent pas de serveur dédié pour héberger leur site internet, mais seulement d&#8217;un hébergement mutualisé, vous connaissez peut-être <a href="http://webcron.org">Webcron.org</a> (le <a href="http://fr.wikipedia.org/wiki/Cron">cron</a> version web). Il permet d&#8217;atteindre des pages à une date et une heure précise.</p>
<p style="text-align: justify;">De cette façon vous pouvez programmer l&#8217;exécution d&#8217;une tâche via un script PHP par exemple (backup de votre base de donnée par exemple, envoie d&#8217;un mail à vos membres, etc).</p>
<p style="text-align: justify;">Depuis le mois d&#8217;octobre, Webcron <a href="http://www.webcron.org/content/view/25/lang,french/">évolue vers des offres payantes</a>. Les tarfis ne sont certes pas exhorbitants, mais vous ne souhaitez peut-être pas payer pour ce type de services.</p>
<p style="text-align: justify;">Je vous propose deux alternatives : <a href="http://cron.hiwit.org">Hiwit</a> et <a href="http://www.cronjobs.org">Cronjobs</a>. Tous deux gratuits mais assez limité car ils proposent également une version payante&#8230;</p>
<p style="text-align: justify;">Si vous cherchez une idée à développer, lancer vous dans les webcron <img src='http://blogmotion.fr/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
Vous devriez me suivre sur Twitter : <strong><a href="http://twitter.com/xhark">@xhark</a></strong>
<hr />
<p><small><a href="http://blogmotion.fr/internet/service-de-webcron-gratuit-1038">Article original</a> écrit par Mr Xhark publié sur <a href="http://blogmotion.fr">Blogmotion</a> le 02/10/2008 |
<a href="http://blogmotion.fr/internet/service-de-webcron-gratuit-1038#comments">3 commentaires</a> |
<br />Attention : l'intégralité de ce billet est protégée par la licence <a href="http://creativecommons.org/licenses/by-nc-sa/2.0/fr/">Creative Commons</a> 
</small></p>]]></content:encoded>
			<wfw:commentRss>http://blogmotion.fr/internet/service-de-webcron-gratuit-1038/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

