web-dev-qa-db-fra.com

Comment écrire un script qui sauvegarde les documents imprimés toutes les 6 heures?

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?

1
Nate Chung

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
1
dessert

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.

0
Aaron Obeng

Résumant les commentaires utiles de @qwr, @GeorgeUdosen et @perlduck, voici ce que vous devez faire:

  • écrire un script qui sauvegarde les fichiers à l'aide de l'un des divers utilitaires de ligne de commande de sauvegarde
  • tester ce script jusqu'à ce qu'il fonctionne parfaitement
  • examinez cron pour savoir comment exécuter des commandes à un moment donné.
0
Jos