Je travaille actuellement sur un projet où je dois construire un réseau Linux sur une machine virtuelle en utilisant Ubuntu 18.04. J'essaie actuellement de comprendre comment écrire un script qui sauvegarde les documents imprimés toutes les 6 heures. Ma question est la suivante: comment dois-je écrire ce script? Mon professeur a décidé pour nous de trouver cette information par nous-mêmes, et il a été très difficile de trouver des conseils sur Internet. Merci à l'avance à tous ceux qui peuvent nous aider!
Modifier:
Je comprends comment exécuter le script toutes les 6 heures à l’aide de l’utilitaire cron. Mais ma question est comment puis-je écrire ce script? Je suis complètement perdu sur l'écriture du script lui-même. Donc, si un document devait être imprimé sur une imprimante, comment pourrais-je écrire un script qui sauvegarde tout ce qui est imprimé sur l'imprimante?
Voilà ce que je pensais: je voulais peut-être créer un script afin que chaque fois que quelque chose soit imprimé, il soit placé dans un dossier où je peux le prendre et le sauvegarder. Est-ce que ça sonne juste? Ou y a-t-il des fichiers journaux qui le font automatiquement et tout ce que j'ai à faire est de les récupérer dans le fichier journal?
Regardez lpq
et lpstat
:
lpq
affiche les travaux en file d'attente sur l'imprimante par défaut et _lpq -l
_ le fait de manière plus détaillée, voir man lpq
lpstat -o
_ imprime les travaux en file d'attente, utilisez _lpstat -Wcompleted -o
_ pour les travaux terminés, voir man lpstat
Le fichier/var/spool/est traditionnellement utilisé pour les données localisées sur la machine qui sont spoulées vers ou depuis des sous-systèmes UNIX.
L'exemple que je vais donner est pour Ubuntu 18.04, sur lequel je suis
Tous les travaux d'impression sont stockés dans le répertoire / var/spool/cups (CUPS est le système d'impression open source basé sur des normes développé par Apple Inc.), vous aurez besoin Les privilèges de Sudo pour accéder au répertoire.
Sur d’autres systèmes Linux, les travaux d’impression se feront sur/var/spool/lpd (répertoire spool de l’imprimante).
Voici un script très simple pour afficher tous les fichiers du répertoire
#!/bin/bash
print_file_location="/var/spool/cups/*"
for file in $print_file_location
do
#this will print all the files in directory
echo "$file"
done
J'espère que cela vous aidera dans votre enquête.
édité: Pour copier les fichiers dans un nouvel emplacement, vous pouvez:
#!/bin/bash
print_file_location="/var/spool/cups/*"
for file in $print_file_location
do
#this will copy the files to a different directohory
cp $file "/home/print_backup/ $(basename $file).bak"
done
Les fichiers sauvegardés auront les mêmes autorisations que les fichiers originaux.
Résumant les commentaires utiles de @qwr, @GeorgeUdosen et @perlduck, voici ce que vous devez faire:
cron
pour savoir comment exécuter des commandes à un moment donné.